每个表的last_update时间戳?

时间:2010-03-10 04:22:05

标签: mysql sql database timestamp sql-update

在每个表中为最后一行更新设置时间戳是一个好习惯吗?

或者他们应该只在真正需要的地方设置? 我怎么知道以后需要更新时间戳的位置? 他们知道哪种信息有意义?

4 个答案:

答案 0 :(得分:2)

在具有乐观记录锁定的情况下,

行时间戳用于行版本控制;即2个用户同时编辑同一记录。

通过检查当前行时间戳以及从数据库中检索行时找到的时间戳,可以检测数据库版本是否已更改。

答案 1 :(得分:1)

更好的决定是将其保存在用于捕获事务的表中。它可能适用于日志记录/安全性,也可能用于处理并发。

答案 2 :(得分:1)

我认为开始向表添加“last_updated”时间戳是一个滑坡。所以你可能会有人问“这一行何时改变了?”但是一旦你添加了一个last_updated列,他们就会问,“好吧,它在6天前被挂了。什么被改变了?”。所以现在你必须设置一个“历史”表,其中包含所有已更改的列。但随后他们问道,“好吧,'foo'专栏在6天前改变了,之前的价值是多少?”现在,您将跟踪整个数据库中每一行的完整历史记录!

答案 3 :(得分:0)

我认为真正的问题是你想要使用这些时间戳的内容。如果您的应用程序没有实际需要,那么我没有看到存储和维护该数据的强有力的案例。