본문 바로가기
MySql

MySQL 오류 "DEFAULT 절에 CURRENT_TIMESTAMP가있는 TIMESTAMP 열이 하나만있을 수 있습니다."내가 잘못하지 않은 경우에도

by 베이스 공부 2020. 12. 7.
반응형
CREATE TABLE AlarmHistory
(
    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    value DOUBLE NOT NULL,
    startedStamp TIMESTAMP NOT NULL,
    finishedStamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
);

위의 테이블을 만들려고 할 때 "SQL 오류 (1293) : 잘못된 테이블 정의, DEFAULT 또는 ON UPDATE 절에 CURRENT_TIMESTAMP가있는 TIMESTAMP 열이 하나만있을 수 있습니다."라는 오류가 발생합니다.

제 질문은 이것이 버그입니까? 확실히 두 개의 TIMESTAMP 열이 있지만 그중 하나에 만 기본 정의가 있습니다. startedStamp를 제거해도 오류가 없습니다.

 

해결 방법

 


DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 도 없으면 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 를 모두 지정하는 것과 같습니다. .

CREATE TABLE t1 (
  ts TIMESTAMP
);

하나,

상수를 사용하면 기본값은 주어진 값입니다. 이 경우 열에는 자동 속성이 전혀 없습니다.

CREATE TABLE t1 (
  ts TIMESTAMP DEFAULT 0
);

따라서 이것은 작동합니다.

CREATE TABLE AlarmHistory
(
    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    value DOUBLE NOT NULL,
    startedStamp TIMESTAMP DEFAULT 0 NOT NULL,
    finishedStamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
);


 

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

 

 

반응형

댓글