본문으로 바로가기
MySQL] mysql error 1364 Field  'name' doesn't have a default values  


MySQL 5.6 이전에는 필드 생성시 default 값을 따로 지정을 안 해도 insert 시에 '' 처럼 자동으로 디폴트 값이 반영이 되었습니다.
5.6 이후부터는 STRICT 모드라고 해서 테이블 생성시에 default 값을 지정하지 않을 경우 insert 시에 아래와 같이 에러가 발생합니다.

정확하게 필드마다 값을 지정해주는것도 좋지만 외부프로그램을 사용할때 특별히 지정 안해줘도 되는 부분에 '' 이걸 다 셋팅해주긴 귀찮은 편입니다.

mysql.cnf 파일에서 "sql_mode"부분을 찾아서 다음 부분을 제외 하고 재시작을 해주시면 됩니다.


#sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 'STRICT_TRANS_TABLES' 항목을 제외하고 mysql 재시작 

sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


크리에이티브 커먼즈 라이센스
Creative Commons License

트랙백

http://trudy.kr/trackback/122

댓글을 달아 주세요

Trudy
Trudy 님의 블로그
MENU
VISITOR 오늘495 / 전체418632