Create和UPDATE上的MySQL Current_Time戳

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我想要定义表,它将有两个时间戳字段,如下所示:

CREATE TABLE `msgs` (
    `id` INT PRIMARY KEY AUTO_INCREMENT,
    `msg` VARCHAR(256),
    `ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    `ts_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

如何避免错误:

ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

重点是保持期望的行为ts_createts_update在表模式中。

提问于
用户回答回答于

这是MySQL的一个限制,不可能有两个时间戳列,其默认值为引用当前_时间戳。唯一的方法是为ts使用日期时间类型。_CREATE,不幸的是,它的默认值不能是Now()。不过,你也可以自己动手来实现这一目标。

用户回答回答于

MySQL在其最近的版本MySQL5.6.25中支持2时间戳,这就是im现在使用的。

扫码关注云+社区