我看过很多相关问题,但我无法指出这个具体问题:
我有一个 MySQL 表,其中包含 TIMESTAMP(用于创建字段的时间)和 DATETIME(用于每次更新字段的时间)。它看起来像这样:
CREATE TABLE 'vis' (
ID BIGINT PRIMARY KEY AUTO_INCREMENT NOT NULL,
ENTRY VARCHAR(255),
AUTHOR VARCHAR(255),
CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UPDATED_AT DATETIME ON UPDATE CURRENT_TIMESTAMP,
UPDATED_BY VARCHAR(255)
)
当我尝试这个时,我得到的错误是:(SQL Error: 1294 SQL State: HY000) - Invalid ON UPDATE clause for 'updated_at' field
我读过的所有地方(甚至在 Stack Overflow 上)都表明我应该能够做到这一点,但我收到了这个错误。也许还有另一种方法可以让字段在每次更新时自动更新时间?
我正在使用 MySQL 服务器 5.5。
DATETIME
不能用CURRENT_TIMESTAMP
更新时。相反,将其更改为TIMESTAMP
.
或者,考虑针对这种情况使用触发器:http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html
编辑:正如评论中那样(感谢@АлександрФишер!),自 MySQL 5.6.5 以来,这种情况不再出现,因此另一个解决方案是如果可能的话升级您的服务器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)