如果我有一个包含两列create_time和update_time的表,数据类型为timestamp,则默认值为CURRENT_TIMESTAMP,创建表的sql代码为:
CREATE TABLE `t_activity` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`STARTDATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`ENDDATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
);
但提示<error:1293,there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or UPDATE clause.
答案 0 :(得分:0)
我不确定在使用CURRENT_TIMESTAMP填充STARTDATE和ENDDATE时你想要完成什么。但是要修复代码,请尝试将数据类型更改为DATETIME,如下所示:
**CREATE TABLE `t_activity` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`STARTDATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`ENDDATE` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
);**
http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-5.html
答案 1 :(得分:0)
Mysql中的这个限制:
以前,每个表最多只能有一个TIMESTAMP列 自动初始化或更新到当前日期和时间。 这一限制已被取消。任何TIMESTAMP列定义都可以 具有DEFAULT CURRENT_TIMESTAMP和ON UPDATE的任意组合 CURRENT_TIMESTAMP子句。此外,现在可以使用这些条款 使用DATETIME列定义。有关更多信息,请参阅自动 TIMESTAMP和DATETIME的初始化和更新。
选中此处了解更多详情
http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-5.html