개발/sql

[MySQL] #1067 'ct_time'의 유효하지 못한 디폴트 값을 사용하셨습니다. 오류 해결

반응형

 

문제상황

phpMyAdmin에서 칼럼을 수정하거나 삭제하려고할 때마다 #1067 -'ct_time'의 유효하지 못한 디폴트 값을 사용하셨습니다. 라고 오류가 발생한다.

ct_time 컬럼 형식은 datetime이고 기본값이 0000-00-00 00:00:00 이었는데,

기존에 서버에 설치해서 사용할 때는 아무 문제 없다가 이번에 새로운 서버에 새롭게 영카트를 설치하면서 문제가 발생했다.

 

이 문제는 mysql 5.6 이후로 mysql 문법이 엄격해지면서 발생한다고 한다. 

mysql 5.5 이하 버전에서는 기본이 false 였지만, 5.6부터는 기본이 true 여서 발생하는 문제.

5.6의 문법에 맞게 입력하거나 아래의 방법으로 해결이 가능하다.

 

 

해결방법

SQL_MODE에서 "NO_ZERO_IN_DATE,NO_ZERO_DATE" 값을 제거하면 된다.

 

기존에 입력하려던 명령어 앞에

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 

SET time_zone = "+00:00";  이 두줄을 추가해준뒤 실행하면 된다.

 

[예시]

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 
SET time_zone = "+00:00"; 
ALTER TABLE `g5_shop_cart`  DROP `cd_price`;  // 기존 SQL 명령어 입력

 

두 줄 추가한 뒤 실행하면 오류없이 잘 작동된다.

 

 

 

반응형