Mysql NOT NULL에 값을 넣지 않아도 에러가 안난다
내가 많이 써 본 MSSQL 같은 경우 컬럼에 대해 NOT NULL 로 설정 하면
반드시 값을 넣어 줘야 에러가 나지 않는다.
그런데 가만 보니 어떤 Mysql 에서는 NOT NULL 컬럼에 값을 넣지 않아도 문제가 안되고
있어서 자세히 살펴보니 sql-mode 라는 것이 있었다.
이름하여 strict mode 라고 합니다.
-- 현재 설정 된 sql_mode 를 확인 해 봅니다.
SELECT @@global.sql_mode;
-- 아래와 같은 결과가 나왔다면 NOT NULL 로 설정하면 에러가 나고 멈춰 버립니다.
STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
아마도 Mysql 5.x 이전 부터는 STRICT 가 아니어서 NOT NULL 에 값을 넣지 않으면 공백으로 입력이 된듯 하다.
그럼 어떻게 해야 될까 ?
리눅스의 경우 my.cnf 파일을 찾아 주석 처리해 주면 된다.
( ※ my.ini 파일은 윈도우에서는 숨김 파일이므로 검색할 때 숨김 파일 포함으로 찾아 보면 된다. )
이제 다시 mysql 을 다시 시작하고 해보면 된다.
참고 : http://dev.mysql.com/doc/refman/4.1/en/server-sql-mode.html
http://nickbartlett.com/wordpress/how-to-turn-off-mysql-strict-mode/
http://digitalmemo.neobie.net/2009/03/04/mysql-default-sql-mode/
'밥벌이관련 > SQL' 카테고리의 다른 글
DATE_FORMAT 검색의 위험성 (0) | 2021.03.02 |
---|---|
WHERE QUERY Performance Tuning (0) | 2019.10.15 |
Forgot password (0) | 2018.01.19 |
영문, 숫자, 한글 순으로 데이터 출력 쿼리문 (0) | 2017.08.31 |