Mysql 5.x version 에서 NULL값 INSERT 시 문제해결법

HYEONG HWAN, MUN/ 10월 18, 2014/ 미분류/ 1 comments

https://blog.lael.be/post/160

만약 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 가 들어갑니다.

1 Comment

  1. Pingback: H2 DB Not Null 컬럼에 Null을 insert하면 발생하는 일 - ThinkCUBES

Leave a Comment

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*