mysql - 一个具有多个 TIMESTAMP 列的 Mysql 表

标签 mysql timestamp

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

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

我发现你can have multiple TIMESTAMP columns通过将每个不带 DEFAULTON 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 - 一个具有多个 TIMESTAMP 列的 Mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4851672/

相关文章:

python - mysql.connector.connect和connection.cursor的成本

python - 同时更新模型及其相关父模型的时间戳

python - 如何更改此 python 行以使其读取其最新时间戳的图像而不说明特定的图像名称?

sql - 带有时间戳的 AWS Athena SQL 查询错误

MySQL 确定用户是否在 X 天内登录

java - 如何读取已有的时间戳?

具有多个自定义变量的 PHP/MySQL PayPal IPN

mysql - 确定表是否在 CASCADE 上有 DELETE

phpMyAdmin 无法连接到 MySQL 服务器

php - 将多个选择从下拉列表存储到数据库的最佳方法是什么?