0

我有这张桌子:

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

4

1 回答 1

2

这是一个硬限制。最好的办法是在您的应用程序中date_edited使用CURRENT_TIMESTAMP和管理date_published

date_published timestamp NULL DEFAULT NULL,
date_edited timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

触发器可能是另一种选择,但我尽量不要依赖那些不容易被版本控制的东西。

于 2015-04-15T17:58:36.583 回答