如何更新"last_dt"列的值,当使用"UPDATE"或"INSERT IGNORE INTO ~ ON DUPLICATE KEY UPDATE ~"语句时
P粉633075725
P粉633075725 2023-09-16 13:54:41
0
1
834

last_dt列是数据最后更改的日期。它与插入日期的管理方式不同。插入日期由create_dt管理。

我只想在除了update_dt列之外的其他列发生更改时,才更改更新日期的值。

所以gpt给了我这个:

UPDATE your_table
SET column1 = %s, column2 = %s, column3 = %s, update_date = IF(
    column1 <> %s OR column2 <> %s OR column3 <> %s,
    NOW(), update_date
)
WHERE id = %s

但我认为这个方法有点奇怪。我实际测试过,发现有错误。也有可能是我代码写错了。

有没有更好的方法?gpt提供的答案是正确的吗?我认为很多数据库管理员都解决过同样的问题。我问这个问题是因为我找不到合适的答案。

P粉633075725
P粉633075725

全部回复(1)
P粉659518294

我认为我必须使用这个

`date`    TIMESTAMP      NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板