>  기사  >  데이터 베이스  >  MySQL 테이블에 CURRENT_TIMESTAMP 열이 두 개 이상 있을 수 있나요?

MySQL 테이블에 CURRENT_TIMESTAMP 열이 두 개 이상 있을 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-30 11:31:03841검색

Can MySQL tables have more than one CURRENT_TIMESTAMP column?

MySQL의 다중 CURRENT_TIMESTAMP 열 제한 극복

데이터베이스 테이블에서 데이터의 생성 및 업데이트 타임스탬프를 모두 추적하는 것이 바람직한 경우가 많습니다. . MySQL에서는 CURRENT_TIMESTAMP 키워드를 사용하여 현재 날짜와 시간으로 타임스탬프 열을 자동으로 채울 수 있습니다. 그러나 MySQL에는 테이블의 CREATE 문에 하나의 CURRENT_TIMESTAMP 열만 지정할 수 있다는 제한이 있습니다.

오류 해결

테이블을 생성하려고 할 때 발생하는 오류 여러 CURRENT_TIMESTAMP 열이 있는 경우:

ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

이 오류는 MySQL이 여러 CURRENT_TIMESTAMP 열에 대한 제한 사항을 위반하기 때문에 테이블 정의를 처리할 수 없음을 나타냅니다.

해결책

이러한 제한을 극복하려면 최신 버전의 MySQL(5.6.25 이상)을 사용할 수 있습니다. MySQL 5.6.25 이상에서는 여러 CURRENT_TIMESTAMP 열에 대한 제한이 제거되었습니다. 이를 통해 현재 날짜 및 시간으로 자동 업데이트되는 여러 TIMESTAMP 열이 있는 테이블을 정의할 수 있습니다.

예를 들어, 다음 테이블 정의는 MySQL 5.6.25 이상에서 유효합니다.

CREATE TABLE `msgs` (
    `id` INT PRIMARY KEY AUTO_INCREMENT,
    `msg` VARCHAR(256),
    `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    `ts_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

이 테이블 정의에서 ts_create 및 ts_update 열은 모두 CURRENT_TIMESTAMP가 각각 삽입 및 업데이트 작업의 기본값으로 설정된 TIMESTAMP 열입니다. 이렇게 하면 레코드가 생성되거나 업데이트될 때 타임스탬프가 현재 날짜 및 시간으로 자동 업데이트됩니다.

위 내용은 MySQL 테이블에 CURRENT_TIMESTAMP 열이 두 개 이상 있을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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