반응형
다음 테이블 스키마가 있습니다.
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
반응형
'MySql' 카테고리의 다른 글
MySQL mysqli SELECT 쿼리의 결과 인쇄 (0) | 2020.11.29 |
---|---|
MySQL 저장 프로 시저 반환 값 (0) | 2020.11.29 |
MySQL datetime의 MySQL 스트립 시간 구성 요소 (0) | 2020.11.29 |
MySQL SQL (MySQL) : 문자열에서 단어의 첫 글자와 일치합니까? (0) | 2020.11.29 |
MySQL mysql의 기존 행 열 값에 1을 더하는 방법 (0) | 2020.11.28 |
댓글