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 に答える