Mysql 为什么';更新当前时间戳时';不';更新相同数据时是否更新?
当我有一个包含以下数据的表时:Mysql 为什么';更新当前时间戳时';不';更新相同数据时是否更新?,mysql,database,timestamp,sql-update,Mysql,Database,Timestamp,Sql Update,当我有一个包含以下数据的表时: StatementID(int AI) | created_by(int) | changed_when(onUpdate CURRENT_TIMESTAMP) -------------------------------------------------------------------------------- 7 | 4 | 2013-02-26 12:05:57 8
StatementID(int AI) | created_by(int) | changed_when(onUpdate CURRENT_TIMESTAMP)
--------------------------------------------------------------------------------
7 | 4 | 2013-02-26 12:05:57
8 | 4 | 2013-02-26 12:20:12
我有以下疑问:
mysql_query('
UPDATE table
SET created_by = 4
WHERE statementID=8');
当我编辑语句信息(其他tbl)并由上次相同的用户编辑时,更改的\u不会更新
当我用相同的数据更新由创建的时,为什么字段发生了变化 这种行为是故意的。onUpdate CURRENT_TIMESTAMP字段在字段值更改时更新,而不是在字段保持不变时更新 为了达到你似乎想要的,你可以这样做
UPDATE table
SET created_by = 4,
changed_when = null,
WHERE statementID = 8
如果在任何update语句中,如果值保持不变,则时间戳值将不会更新 从Mysql站点 如果列是自动更新的,则当行中任何其他列的值从其当前值更改时,该列将自动更新为当前时间戳<代码>如果所有其他列都设置为其当前值,则该列保持不变。要防止列在其他列更改时更新,请显式将其设置为当前值 解决方案
要在其他列未更改的情况下更新该列,请显式将其设置为应有的值(例如,将其设置为当前\u时间戳)。
Thx这是解决方案:)