반응형
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
반응형
'MySql' 카테고리의 다른 글
MySQL mysqli_query를 실행하는 데 문제가 있습니다. (0) | 2020.12.07 |
---|---|
MySQL 치명적인 오류 : X : \ wamp \ www \ xxx에 메모리 부족 (1134559232 할당 됨) (32768 바이트 할당 시도) (0) | 2020.12.07 |
MySQL 정의되지 않은 클래스 상수에 정의되지 않은 클래스 상수 'MYSQL_ATTR_INIT_COMMAND'(PHP 5.5.3) (0) | 2020.12.07 |
MySQL 테이블이 비어 있는지 확인하십시오. COUNT (*)가 0 대 LIMIT (0,1) 결과가 있습니까? (0) | 2020.12.07 |
MySQLi와 같은 PDO Fetch Array (0) | 2020.12.07 |
댓글