오늘도 어김없이 발생한 오류
mysql에서 datetime형태로 table create을 하려니 위와 같이 오류가 발생하네요.
찾아보니, 원인과 해결방법은 아래와 같았습니다.
SQL 오류(1067): Invalid default value for 'datetime'
테스트 환경 MySQL 5.7 버전
참고 URL ::
https://stackoverflow.com/questions/36882149/error-1067-42000-invalid-default-value-for-created-at
운영 환경에
적용 되어 있는 환경에서 DDL 문만 추출 후
Create 문을 Local 에 넣게 되면
아래와 같은 메세지가 나오게 됩니다,
SQL 오류(1067): Invalid default value for 'datetime' |
문제점은 Column 에 들어가는 datetime 의
default 값이 '0000-00-00 00:00:00' 이기 때문입니다.
CREATE 가 안되는 원인을 찾아보면
아래와 같이 명령어를 수행하면
show variables like 'sql_mode'\G |
Create 가 안되는 원인은
NO_ZERO_IN_DATE, NO_ZERO_DATE |
입니다.
NO_ZERO_IN_DATE, NO_ZERO_DATE 를 삭제 하면 수행이 되지만
"운영 환경"에서는 함부로 수정 하면 안됩니다.
테이블 생성 작업을 완료 하기 위해서는
생성 작업을 하기 전에 첫 줄에 아래의 문장을 적어 주면 됩니다.
SET sql_mode = ''; |
테이블 생성을 완료 할 수 있을 것 입니다.
'코딩 | 개념 정리 > MySQL' 카테고리의 다른 글
[MySQL] Can't find target attribute Error (0) | 2021.08.19 |
---|---|
[MySQL] You can't specify target table 'sample' for update in FROM clause 에러 해결하기 (0) | 2021.02.05 |
[MySQL] into outfile형태로 export시 컬럼명이 없다! (0) | 2021.02.05 |
[MySQL] 에러와의 싸움... 흔한 에러 모음 (0) | 2021.02.05 |
[Mysql] export 시도 중 secure_file_priv 문제 발생!! (0) | 2021.02.05 |