반응형
다음 SQL을 사용하여 데이터베이스 테이블을 만들고 있습니다.
CREATE TABLE `cs3_ds1` (
`ID` INT NOT NULL ,
`TIME` TIMESTAMP NOT NULL ,
`USER` VARCHAR(45) NOT NULL ,
`TIME1` TIMESTAMP NOT NULL ,
`TIME2` TIMESTAMP NOT NULL ,
`INSERT_TIME` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (`ID`) )
ENGINE = InnoDB
현재 타임 스탬프를 하나의 열에서만 기본값으로 사용하고 있지만 다음과 같은 오류가 발생합니다.
ERROR 1293: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
이 오류가 발생하는 이유는 무엇입니까?
해결 방법
MySQL은 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
를 사용하여 TIMESTAMP 열을 자동으로 초기화하므로 첫 번째 열 TIME
에는 CURRENT_TIMESTAMP가 기본값으로 추가됩니다. 따라서 열에 DEFAULT를 명시 적으로 추가 할 때는 이미 존재하는 열이 있습니다. 열이 정의 된 순서를 변경해야합니다.
CREATE TABLE `silas`.`cs3_ds1` (
`ID` INT NOT NULL ,
`INSERT_TIME` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ,
`TIME` TIMESTAMP NOT NULL ,
`USER` VARCHAR(45) NOT NULL ,
`TIME1` TIMESTAMP NOT NULL ,
`TIME2` TIMESTAMP NOT NULL ,
PRIMARY KEY (`ID`) )
ENGINE = InnoDB
또는 다른 타임 스탬프 열에 기본값을 추가합니다.
CREATE TABLE `silas`.`cs3_ds1` (
`ID` INT NOT NULL ,
`TIME` TIMESTAMP NOT NULL DEFAULT 0,
`USER` VARCHAR(45) NOT NULL DEFAULT 0,
`TIME1` TIMESTAMP NOT NULL DEFAULT 0 ,
`TIME2` TIMESTAMP NOT NULL DEFAULT 0 ,
`INSERT_TIME` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (`ID`) )
ENGINE = InnoDB
참조 페이지 https://stackoverflow.com/questions/11031946
반응형
'MySql' 카테고리의 다른 글
MySQL PHP 변수로 MySQL 테이블 만들기 (0) | 2021.02.07 |
---|---|
MySQL Windows Forms에서 MySQL에 어떻게 연결할 수 있습니까? (0) | 2021.02.07 |
MySQL PHP-MySQL-행 삭제 (0) | 2021.02.07 |
MySQL SELECT WHERE EQUALS syntax (0) | 2021.02.07 |
MySQL 테이블이 좋아하는 MySQL 대량 삭제 테이블? (0) | 2021.02.07 |
댓글