ERROR 1067 (42000) at line 5: Invalid default value for '컬럼명'에러 해결
2023. 2. 4. 12:11ㆍ카테고리 없음
728x90
MySQL에 테이블 생성 스크립트를 적용하던 중 1067 에러가 발생해서 확인해 보니 특정 칼럼값이 문제가 생겨 발생하는 에러였다.
예를 들어서
# Create member table for U.S. Historical League
DROP TABLE IF EXISTS member;
#@ _CREATE_TABLE_
CREATE TABLE member
(
member_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (member_id),
last_name VARCHAR(20) NOT NULL,
first_name VARCHAR(20) NOT NULL,
suffix VARCHAR(5) NULL,
expiration DATE NULL DEFAULT '0000-00-00',
email VARCHAR(100) NULL,
street VARCHAR(50) NULL,
city VARCHAR(50) NULL,
state VARCHAR(2) NULL,
zip VARCHAR(10) NULL,
phone VARCHAR(20) NULL,
interests VARCHAR(255) NULL
);
#@ _CREATE_TABLE_
위와 같은 테이블 생성 스크립트가 파일이 있을 경우 expiration DATE NULL DEFAULT '0000-00-00', 이부분이 문제를 일으켰다.
MySQL이 버전업 된 후 위 선언은 더이상 적용이 안되는데 논리적으로 '0000-00-00'이란 년-월-일 개념은 프로그래머들이 초기화 값을 주고 싶다는 의미이지만 실제 생활에서 저런 문장은 불가능하기에 MsSQL개발자들이 막아놓은 거로 알고 있다.
expiration DATE NULL, 이렇게 바꾸고 실행하면 정상적으로 실행된다.