更新时使用相同信息更新时当前\u时间戳不起作用

ee7vknir  于 2021-06-20  发布在  Mysql
关注(0)|答案(4)|浏览(438)

我的表中有以下列:

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 不管信息是否相同,都要更新。谁能帮忙?

ssgvzors

ssgvzors1#

如果该值没有更改,则不会触发自动更新。你自己可以很容易地试一下。

dfddblmv

dfddblmv2#

当行中任何其他列的值与其当前值发生更改时,自动更新的列将自动更新为当前时间戳。如果所有其他列都设置为其当前值,则自动更新的列将保持不变。
阅读文档

wr98u20j

wr98u20j3#

mysql更新查询应该如下

ALTER TABLE  users   
CHANGE COLUMN `signup_date` `signup_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ;

但我建议在另一个字段中保留更新时间字段,比如“修改日期”,这样您就可以跟踪注册日期和上次修改日期

nukf8bse

nukf8bse4#

UPDATE users SET name = 'new', food = 'new',signup_date = Now() where id = 1;

也许您可以尝试用now()更新列?

相关问题