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/
'MySQL' 카테고리의 다른 글
MySQL 테이블명 대소문자 구분 (0) | 2014.01.24 |
---|---|
mysql 데이터 디렉터리의 위치 (0) | 2014.01.24 |
mysql 테이블 이름 lower_case_table_names 대소문자 변경 (0) | 2014.01.24 |
MySql 외부 접속 가능하게 설정하기 (2) | 2014.01.14 |
mysql like 그리고 regexp (0) | 2013.12.19 |