一尘不染

一个带有多个TIMESTAMP列的Mysql表

mysql

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

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

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

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


阅读 330

收藏
2020-05-17

共1个答案

一尘不染

它记录在MySQL文档中:

另外, 您可以通过为它分配一个NULL值来将任何TIMESTAMP列初始化或更新为当前日期和时间
,除非已使用NULL属性将其定义为允许NULL值。

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

2020-05-17