Mysql 5.x version 에서 NULL값 INSERT 시 문제해결법
만약 a 라는 컬럼에 NOT NULL 속성을 주었다면
strict mode 에서는 a 라는 것에 꼭 값을 집어 넣어주어야 합니다.
하지만 strict mode 가 아니면 값을 집어넣지 않아도 됩니다.
int 형에는 0이, 그외에는 ” 값이 들어갑니다.
mysql 5.x 에서 기본값은 strict mode 입니다.
수정방법은
my.ini 파일을 열어서
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
라는 구문을 찾아서
#sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
으로 바꾸시면 됩니다.
그러면 strict 모드가 해제되고 NULL 필드를 알아서 처리하게 됩니다.
올바른 처리는 strict 모드는 그대로 두고, DB 설계시 NOT NULL 인 경우, Default Value 를 설정하는 것입니다.
이 경우, insert 쿼리에 not null 지정된 필드를 정의하지 않았을 경우, not null 에러 대신에 default value 가 들어갑니다.
Pingback: H2 DB Not Null 컬럼에 Null을 insert하면 발생하는 일 - ThinkCUBES