[MySQL] Field 'name' doesn't have a default value 에러 해결방법

Gi킴Mi 2012.05.30 15:03:38

MySQL 4.x 에서는 이런문제가 발생하지 않는데 MySQL 5.x 에서는 이런문제가 발생합니다.

보통 phpMyAdmin 이런것으로 DB 를 관리하실텐데요.
필드를 만들때 not null 로 설정시 default 값에 아무것도 입력하지 않을경우 자동으로 '' 이렇게 셋팅이 안됩니다.

그래서 insert 쿼리 할때 default 값이 없는 필드를 그냥 무시하고 넘길때 아래처럼 에러가 발생하는겁니다.

 

Field 'name' doesn't have a default value

 

뭐 정확하게 필드마다 값을 지정해주는것도 좋겠지만 특별히 지정 안해줘도 되는 부분에 '' 이걸 다 셋팅해주긴 귀찮고 not null 을 null 로 하긴 싫고.....

my.ini 셋팅값을 변경하면 문제는 해결됩니다. 아래의 부분을 # 으로 주석처리해주세요
 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

그러면 문제해결됩니다.