开发者社区> 问答> 正文

为什么在DEFAULT子句中只能有一个带有CURRENT_TIMESTAMP的TIMES?mysql

为什么在DEFAULT或ON UPDATE子句中只能有一个带有CURRENT_TIMESTAMP的TIMESTAMP列?

CREATE TABLE foo ( ProductID INT(10) UNSIGNED NOT NULL, AddedDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, UpdatedDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=INNODB; 导致的错误:

错误代码:1293

表定义不正确;DEFAULT或ON UPDATE子句中只能有一个带有CURRENT_TIMESTAMP的TIMESTAMP列

展开
收起
保持可爱mmm 2020-05-16 21:54:58 604 0
1 条回答
写回答
取消 提交回答
  • 仅由于历史,代码遗留原因,此限制在MySQL的最新版本中已解除:

    MySQL 5.6.5的更改(2012-04-10,里程碑8)

    以前,每个表最多可以自动将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来源:stack overflow

    2020-05-16 21:55:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像