집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 테이블에 CURRENT_TIMESTAMP가 포함된 여러 TIMESTAMP 열이 있을 수 있습니까?
DEFAULT 또는 ON UPDATE 절에서 CURRENT_TIMESTAMP와 함께 하나의 TIMESTAMP 열만 허용
MySQL의 기록 코드는 테이블이 다음을 포함하는 하나의 TIMESTAMP 열만 갖도록 제한했습니다. DEFAULT 또는 ON UPDATE 절의 CURRENT_TIMESTAMP. 그러나 최신 버전의 MySQL에서는 이 제한이 해제되었습니다.
레거시 오류:
다음 테이블 정의를 고려하세요.
CREATE TABLE `foo` ( `ProductID` INT(10) UNSIGNED NOT NULL, `AddedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `UpdatedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
이 테이블을 생성하려고 하면 다음과 같은 결과가 발생합니다. 오류:
Error Code : 1293 Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
MySQL 5.6.5 이상의 해결 방법:
MySQL 5.6.5부터 이 제한이 제거되었습니다. 이제 모든 TIMESTAMP 또는 DATETIME 열은 DEFAULT CURRENT_TIMESTAMP 및 ON UPDATE CURRENT_TIMESTAMP 절의 모든 조합을 가질 수 있습니다.
MySQL 5.6.5 릴리스 노트에 따라:
Previously, at most one TIMESTAMP column per table could be automatically initialized or updated to the current date and time. This restriction has been lifted. Any TIMESTAMP column definition can have any combination of DEFAULT CURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP clauses.
따라서 제공된 테이블 정의는 이제 레거시 오류를 성공적으로 생성할 수 있습니다:
CREATE TABLE `foo` ( `ProductID` INT(10) UNSIGNED NOT NULL, `AddedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `UpdatedDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
위 내용은 MySQL 테이블에 CURRENT_TIMESTAMP가 포함된 여러 TIMESTAMP 열이 있을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!