我有这张表:
CREATE TABLE IF NOT EXISTS news (
id int(11) NOT NULL AUTO_INCREMENT,
data text,
date_published timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
date_edited timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
给我这个错误:
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause.
有关于此问题的旧帖子,但由于当前的数据库结构,我想要一个适当的解决方法。
版本:libmysql - 5.5.41 运行于:5.5.41-ubuntu.14.04.1
最佳答案
这是一个硬限制。最好的办法是让 date_edited
使用 CURRENT_TIMESTAMP
并在应用程序中管理 date_published
。
date_published timestamp NULL DEFAULT NULL,
date_edited timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
触发器可能是一个替代选项,但我尽量不依赖那些不容易进行版本控制的东西。
关于mysql - 正确的解决方法 - DEFAULT 或 ON UPDATE 子句中只能有一个带有 CURRENT_TIMESTAMP 的 TIMESTAMP 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29656952/