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, 이렇게 바꾸고 실행하면 정상적으로 실행된다.