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字段