发出命令
SHOW CREATE TABLE whatever
然后看表定义。
它可能有这样一条线
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
在里面。
DEFAULT CURRENT_TIMESTAMP表示
INSERT没有明确的时间戳设置的任何人都会使用当前时间。同样,这
onUPDATE CURRENT_TIMESTAMP意味着没有显式时间戳的任何更新都会导致当前时间戳值的更新。
您可以在创建表时控制此默认行为。
或者,如果第一时间未正确创建时间戳列,则可以对其进行更改。
ALTER TABLE whatevertable CHANGE whatevercolumn whatevercolumn TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
这将导致对表的INSERT和UPDATE操作都自动更新您的时间戳列。如果要更新
whatevertable而不更改时间戳,即,
当其他列更改时,防止更新列
那么您需要发布此类更新。
UPDATE whatevertable SET something = 'newvalue', whatevercolumn = whatevercolumn WHERe someindex = 'indexvalue'
并且,这
TIMESTAMP仅适用于列,不适用于
DATETIME或
DATE列。因为列是
TIMESTAMPs,所以考虑了时区:在正确配置的服务器计算机上,这些值始终存储在UTC中,并在检索时转换为本地时间。



