SQL에 대해 수정할 수없는 어리석은 문제가 있습니다.
ALTER TABLE`뉴스` ADD`dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT, 기본 키 추가 (`dateAdded`)
오류:
(#1067)Invalid default value for 'dateAdded'
누군가 나를 도울 수 있습니까?
SQL에 대해 수정할 수없는 어리석은 문제가 있습니다.
ALTER TABLE`뉴스` ADD`dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT, 기본 키 추가 (`dateAdded`)
오류:
(#1067)Invalid default value for 'dateAdded'
누군가 나를 도울 수 있습니까?
답변:
CURRENT_TIMESTAMP
TIMESTAMP
필드 에서만 허용 됩니다. DATETIME
필드는 널 기본값으로 남겨 두거나 기본값이 전혀 없어야합니다. 기본값은 표현식의 결과가 아닌 상수 값이어야합니다.
관련 문서 : http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html
새 레코드의 "지금"값을 채우도록 테이블에 삽입 후 트리거를 설정하여이 문제를 해결할 수 있습니다.
CURRENT_TIMESTAMP
버전에 따라 DATETIME
다르며 이제 버전 5.6부터 열에 대해 허용됩니다 .
MySQL 문서를 참조하십시오 .
또한 MySQL 5.7.x에서 DATETIME
로 지정 DATETIME(3)
하거나 이와 같이 지정할 때 CURRENT_TIMESTAMP(3)
. 그렇지 않으면 ' 잘못된 기본값 '이 계속 발생 합니다.
LEMP 및 CURRENT_TIMESTAMP에 mysql 버전 5.6.27이 있으며 기본값이 제대로 작동합니다.
유형을 datetime에서 timestamp로 변경하면 작동합니다! mysql 5.5.56-MariaDB-MariaDB Server에 대해 동일한 문제가 발생했습니다. 도움이 될 수 있기를 바랍니다.
AUTO_INCREMENT
DATETIME
?