Sam*_*ami 3 mysql sql timestamp
我正在使用以下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
Run Code Online (Sandbox Code Playgroud)
虽然我只在一列中使用当前时间戳作为默认值,但我收到以下错误:
ERROR 1293: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Run Code Online (Sandbox Code Playgroud)
为什么我收到此错误?
Gar*_*thD 10
MySQL自动初始化TIMESTAMP列DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_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
Run Code Online (Sandbox Code Playgroud)
或者将默认值添加到其他时间戳列:
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
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅MySQL Docs.
| 归档时间: |
|
| 查看次数: |
18966 次 |
| 最近记录: |