mysql新增timestamp列,一个带有多个TIMESTAMP列的Mysql表

我想要一个带有两个TIMESTAMP列的表。一栏用于记录的创建时间,另一栏用于记录的修改时间。我希望这些值由数据库处理。我不想让我的应用程序层考虑一下。

我知道,如果您有带有DEFAULT CURRENT_TIMESTAMP或ON UPDATE CURRENT_TIMESTAMP的TIMESTAMP列,则不能再有另一个TIMESTAMP列。您可以使用DATETIME,但没有办法在触发器之外默认它,据我所知。

我发现您可以具有多个TIMESTAMP列,方法是将每个列都保留为DEFAULT或ON UPDATE,并在创建记录时插入NULL,从而使每个列都具有当前时间戳。从这一点开始,第一列将自动更新。

这个效果非常好,但是给我一种有趣的感觉。这样可能是一个错误,并且可以随时对其进行修补。如果这是应该工作的方式,那就这样吧。我会很高兴地继续前进。谁能告诉我这是最好的方法还是应该使用触发器?

它记录在MySQL文档中:

In addition, you can initialize or update any TIMESTAMP column to the

current date and time by assigning it a NULL value, unless it has been

defined with the NULL attribute to permit NULL values.

http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html

使用MySQL 5.6.5可以在一个表中独立控制多个时间戳,因此其规则已更改。

5.6.1之前的MySQL版本不允许在同一表中包含两个TIMESTAMP列,除非您正确地指出没有默认值并且允许为null。

MySQL 5.6。+允许表中两个或多个TIMESTAMP列。

此处更多信息:http://shankargopal.blogspot.in/2013/03/mysql-566-timestamp-columns-and-default.html

MySQL在同一张表中允许多个TIMESTAMP列,请查看以下示例:

请注意,ts1 TIMESTAMP列是DEFAULT,值为0,而ts2 TIMESTAMP列是DEFAULT,值为CURRENT_TIMESTAMP。 更多信息在这里http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值