MySQL在没有值更改时自动更新列

azpvetkf  于 2023-04-28  发布在  Mysql
关注(0)|答案(1)|浏览(207)

我在名为date_updated的表中设置了一个自动更新列,DML定义为

...
date_updated TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL,
...

但是,只要更新查询中的值没有改变,时间戳就不会更新。
为了在没有值发生更改的情况下强制更新时间戳,文档提到手动更新自动更新的列-doc link
若要在其他列未更改的情况下更新自动更新的列,请将其显式设置为应有的值(例如,将其设置为CURRENT_TIMESTAMP)。
如果是这样,我的更新查询现在也将date_updated列设置为CURRENT_TIMESTAMP
现在我的问题是,这是否会触发date_updated列的双重更新?即
1.根据DDL中的定义(ON UPDATE
1.并在更新查询中手动更新date_updated
如果是这样,我的方法是正确的,还是应该在DML中删除该列的ON UPDATE定义

pqwbnv8z

pqwbnv8z1#

这是否会触发date_updated列的双重更新?
不可以。如果在UPDATE语句中为自动更新时间戳列指定一个值,则该值优先于自动更新逻辑。

相关问题