我在名为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
定义
1条答案
按热度按时间pqwbnv8z1#
这是否会触发date_updated列的双重更新?
不可以。如果在UPDATE语句中为自动更新时间戳列指定一个值,则该值优先于自动更新逻辑。