본문 바로가기
MySql

MySQL 4.0에 생성 및 마지막 업데이트 된 타임 스탬프 열이 모두 있음

by 베이스 공부 2020. 11. 29.
반응형

다음 테이블 스키마가 있습니다.

CREATE TABLE `db1`.`sms_queue` (
  `Id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `Message` VARCHAR(160) NOT NULL DEFAULT 'Unknown Message Error',
  `CurrentState` VARCHAR(10) NOT NULL DEFAULT 'None',
  `Phone` VARCHAR(14) DEFAULT NULL,
  `Created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `LastUpdated` TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP,
  `TriesLeft` tinyint NOT NULL DEFAULT 3,
  PRIMARY KEY (`Id`)
)
ENGINE = InnoDB;

다음 오류와 함께 실패합니다.

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

제 질문은 두 필드를 모두 가질 수 있습니까? 또는 각 트랜잭션 중에 LastUpdated 필드를 수동으로 설정해야합니까?

 

해결 방법

 


테이블의 한 TIMESTAMP 열은 열 초기화를위한 기본값, 자동 업데이트 값 또는 둘 다로 현재 타임 스탬프를 가질 수 있습니다. 현재 타임 스탬프는 한 열의 기본값이되고 다른 열의 자동 업데이트 값이 될 수 없습니다.


이전에는 테이블 당 최대 하나의 TIMESTAMP 열을 자동으로 초기화하거나 현재 날짜 및 시간으로 업데이트 할 수있었습니다. 이 제한이 해제되었습니다. 모든 TIMESTAMP 열 정의는 DEFAULT CURRENT_TIMESTAMP 및 ON UPDATE CURRENT_TIMESTAMP 절의 조합을 가질 수 있습니다. 또한 이제 이러한 절을 DATETIME 열 정의와 함께 사용할 수 있습니다. 자세한 내용은 TIMESTAMP 및 DATETIME에 대한 자동 초기화 및 업데이트를 참조하십시오.

 

참조 페이지 https://stackoverflow.com/questions/267658

 

 

반응형

댓글