MySQL:没有更新时间戳更新条目
我有一个MySQL表中的属性“ON UPDATE CURRENT_TIMESTAMP”的时间戳。 有没有办法手动禁用在特殊场合更新时间戳? (例如:更新条目来修改博客文章,但不能重新约会)
有没有办法手动禁用在特殊场合更新时间戳? (例如:更新条目来修改博客文章,但不能重新约会)
听起来就像你需要configuration默认约束,以便它只填充插入的列:
DEFAULT CURRENT_TIMESTAMP
将其更改为仅此意味着任何修订都不会触发要更新的时间戳记值。 IE:如果你昨天创build了博客post,并且今天更正了一个错字,那么栏目中的date仍然是昨天。
您可以在更新命令中手动将列的值设置为其当前值:
UPDATE table SET x=y, timestampColumn=timestampColumn WHERE a=b;
如果不在查询中设置该值,则会根据表定义将其更新为当前时间戳。
要使你的表/时间戳自动更新:
ALTER TABLE myTable CHANGE myTimestampColumn myTimestampColumn TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
要使其不自动更新:
ALTER TABLE myTable CHANGE myTimestampColumn myTimestampColumn TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
注意:“默认current_timestamp”部分只是在默认时间将其设置为当前标记,因为该字段不为空。 如果你喜欢,你可以删除非空和默认值。
不要使用时间戳,而是手动跟踪时间。
如果你真的想更新logging,而不更新它的时间戳使用:
UPDATE `table` SET `timestamp` = `timestamp`, `col` = 'new data' …;
如果在更新时更改timestemp,则必须考虑如果值已更新但未更改(更新保存值),则不会更新“更新Current_timestemp”,因此在这种情况下应设置timestemp手动
SET LastUpdatedDate=NOW() WHERE
这个想法来自这里: 触摸MYSQLlogging来更新TIMESTAMP字段