gpt4 book ai didi

mysql - 行创建和最后修改的时间戳

转载 作者:可可西里 更新时间:2023-11-01 06:37:12 27 4
gpt4 key购买 nike

我需要跟踪一行插入数据库的时间,以及上次修改的时间。

我尝试创建两个单独的列,并使用 CURRENT_TIMESTAMP:

create table def (
id int,
creation timestamp
default CURRENT_TIMESTAMP,
modification 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

执行此操作的最佳方法是什么?

我正在考虑存储过程,但正在寻找标准解决方案。我还关心访问权限——尽可能少的程序/事物应该能够触及时间戳。


虽然我更喜欢 MySQL 的答案,但也欢迎其他 RDBMS 的解决方案!

最佳答案

是的,这是对 MySQL 的一个蹩脚的限制。如果您正在浏览一个应用程序,您可以为 created_at 列添加一个 time() 调用,并让 updated_at 列使用 CURRENT_TIMESTAMP。

$sql = "INSERT INTO my_table SET name = 'Mike', created_at = " . time();

我会选择在 created_at 列上执行此操作,因为它可能不会像 updated_at 列那样经常被触及。

-- 编辑--

更好的是,使用 MySQL 的内置 now() 函数。这样你只需要关心 mysql 服务器的时区,而不是应用服务器和 mysql 服务器的时区。

$sql = "INSERT INTO my_table SET name = 'Mike', created_at = NOW()";

关于mysql - 行创建和最后修改的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8364430/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com