[mysql] ‘dateAdded’에 대한 잘못된 기본값

SQL에 대해 수정할 수없는 어리석은 문제가 있습니다.

ALTER TABLE`뉴스`
 ADD`dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT,
 기본 키 추가 (`dateAdded`)

오류:

(#1067)Invalid default value for 'dateAdded'

누군가 나를 도울 수 있습니까?



답변

CURRENT_TIMESTAMPTIMESTAMP필드 에서만 허용 됩니다. 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). 그렇지 않으면 ‘ 잘못된 기본값 ‘이 계속 발생 합니다.


답변

나는 같은 문제가 있었고 수정을 통해 내 문제가 해결되었습니다.

  • 유형을 ‘TIMESTAMP’로 선택하십시오.

  • 길이 / 값 필드에 아무 것도 입력하지 마십시오. 빈칸 유지

  • CURRENT_TIMESTAMP를 기본값으로 선택합니다.

MySQL 버전 5.5.56을 사용하고 있습니다.


답변

LEMP 및 CURRENT_TIMESTAMP에 mysql 버전 5.6.27이 있으며 기본값이 제대로 작동합니다.


답변

mysql 버전 5.5는 날짜 시간 기본값을 CURRENT_TIMESTAMP로 설정하면 버전 5.6으로 업데이트 할 수있는 보고서 오류가 발생하며 날짜 시간 기본값을 CURRENT_TIMESTAMP로 설정합니다.


답변

유형을 datetime에서 timestamp로 변경하면 작동합니다! mysql 5.5.56-MariaDB-MariaDB Server에 대해 동일한 문제가 발생했습니다. 도움이 될 수 있기를 바랍니다.