>데이터 베이스 >MySQL 튜토리얼 >MySQL 테이블에 CURRENT_TIMESTAMP가 포함된 여러 TIMESTAMP 열이 있을 수 있습니까?

MySQL 테이블에 CURRENT_TIMESTAMP가 포함된 여러 TIMESTAMP 열이 있을 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-30 08:35:11215검색

Can MySQL Tables Have Multiple TIMESTAMP Columns with CURRENT_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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.