MySql表有两列或多列默认日期值为CURRENT_TIMESTAMP,任何解决方案?

时间:2016-05-25 06:02:43

标签: mysql

如果我有一个包含两列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.

2 个答案:

答案 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