一个具有多个时间戳列的MySQL表

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

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

我想要一张两张表TIMESTAMP。一个列跟踪记录创建的时间,另一个列跟踪记录何时被修改。我希望数据库处理这些值。我不想让我的应用程序层去考虑它。

我知道如果你有TIMESTAMP列带有DEFAULT CURRENT_TIMESTAMP或者ON UPDATE CURRENT_TIMESTAMP你不能再TIMESTAMP列。你可以用DATETIME但据我所知,除了触发器之外,没有办法默认它。

我发现你可以有多个TIMESTAMP让每一个人DEFAULTON UPDATE插入NULL创建记录时,每个记录都具有当前时间戳。从这一点开始,第一列将自动更新。

这工作得很好,但它给我留下了一种有趣的感觉。就像这可能是一个错误,它可以在任何时候修补。如果这是它应该工作的方式,那就去做吧。我将愉快地继续前进。有人能告诉我这是最好的方法吗,还是我应该使用触发器?

提问于
用户回答回答于

MySQL文档中记录了它:

此外,可以通过为任何时间戳列指定一个空值,将其初始化或更新为当前日期和时间。,除非它已经用NULL属性定义为允许空值。

...

用户回答回答于

5.6.1之前的MySQL版本不允许有两个版本TIMESTAMP列在同一个表中,除非正如你正确指出的那样,除了使用Out默认值并允许NULL之外。

Mysql 5.6.+允许两个或两个以上TIMESTAMP表中的列。

扫码关注云+社区