在我读过的许多关于SQL时间戳使用的例子中,一个典型的例子是添加一个时间戳列,以防止出现一种竞争条件,即用户更改的数据由于另一个用户“先进入”而失去了完整性。
更具体地说,在对行发出更新之前,业务逻辑将交叉检查它们认为正在更改的时间戳,以便不会与行版本控制混淆。
问题
为什么DATETIME不能满足这个任务呢?实际上,按照这种逻辑-为什么不能使用任何唯一的数据类型呢?例如,每次发出更新时使用NEWID()?
发布于 2017-01-03 23:14:15
在mySQL中,timestamp是一种比datetime更小的物理存储数据类型。此外,时间戳是通用的,忽略所有时区。对于国际产品来说,这一点很重要。
不推荐使用ID,因为它们通常在插入/更新时生成。
发布于 2017-01-03 23:12:31
看来我错过了时间戳的基本功能,它会自动更新。
因此,在一行上调用UPDATE将自动递增它的TIMESTAMP列,而无需我手动设置它。
我在这里留下这个答案,以防有人对我可能遗漏的其他东西有什么意见。
https://stackoverflow.com/questions/41446445
复制相似问题