Mic*_*utz 15 mysql datetime timestamp
我看过很多相关的问题,但我不能指出这个具体的问题:
我有一个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)
)
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我得到的错误是: (SQL Error: 1294 SQL State: HY000) - Invalid ON UPDATE clause for 'updated_at' field
我读到的任何地方(即使在Stack Overflow上)都表明我应该能够做到这一点,但我收到了这个错误.也许还有另一种方法可以让每次更新时自动更新时间的字段?
我正在使用MySQL Server 5.5.
slu*_*ion 28
DATETIME不能用于CURRENT_TIMESTAMP更新.相反,将其更改为TIMESTAMP.
或者,考虑使用触发器来解决这种情况:http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html
编辑:在评论中(感谢@АлександрФишер!),自MySQL 5.6.5以来不再是这种情况,所以另一种解决方案是尽可能升级您的服务器.
| 归档时间: |
|
| 查看次数: |
47670 次 |
| 最近记录: |