我的表格中有此列:
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
更新的帮助,无论信息是否相同。谁可以提供帮助?
答案 0 :(得分:2)
UPDATE users SET name = 'new', food = 'new',signup_date = Now() where id = 1;
也许您可以尝试使用Now()更新列?
答案 1 :(得分:1)
答案 2 :(得分:1)
如果该值未更改,则不会触发自动更新。您可以轻松地自己尝试。
答案 3 :(得分:-1)
MYSQL更新查询应如下
ALTER TABLE users
CHANGE COLUMN `signup_date` `signup_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ;
但是我建议将更新时间字段保留在另一个字段中,例如“ modified_date”,以便您可以同时跟踪注册日期和上次修改日期