我的表中有以下列:
date_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
我注意到,当我尝试用相同的信息更新行时,时间戳不会改变。
例如,我的表(用户)如下:
+----+-------+----------------+-----------+-------------+
| id | name | food | confirmed | signup_date |
+----+-------+----------------+-----------+-------------+
| 1 | John | Casserole | Y | 2012-04-11 12:46:55 |
| 2 | Sandy | Key Lime Tarts | N | 2012-04-14 11:02:02 |
+----+-------+----------------+-----------+-------------+
当我运行这个查询时,一切正常( signup_date
按预期更新):
UPDATE users SET name = 'new', food = 'new' where id = 1;
但是,当我运行这个(插入确切的信息)时, signup_date
与上一个相同:
UPDATE users SET name = 'John', food = 'Casserole' where id = 1;
我需要你的帮助 signup_date
不管信息是否相同,都要更新。谁能帮忙?
4条答案
按热度按时间ssgvzors1#
如果该值没有更改,则不会触发自动更新。你自己可以很容易地试一下。
dfddblmv2#
当行中任何其他列的值与其当前值发生更改时,自动更新的列将自动更新为当前时间戳。如果所有其他列都设置为其当前值,则自动更新的列将保持不变。
阅读文档
wr98u20j3#
mysql更新查询应该如下
但我建议在另一个字段中保留更新时间字段,比如“修改日期”,这样您就可以跟踪注册日期和上次修改日期
nukf8bse4#
也许您可以尝试用now()更新列?