を使用した複合キーに関する他の多くの質問と同様にAUTO_INCREMENT
、次のエラーが表示されます。
Incorrect table definition; there can be only one auto column and it must be defined as a key
私がやっていることは、テーブル内のすべての変更の履歴を作成することです。変更が行われるたびに、新しい行が新しいタイムスタンプで挿入され、以前の変更はそのまま残ります。
懸念している私のDDLはこれです:
DROP TABLE IF EXISTS personnel;
CREATE TABLE IF NOT EXISTS personnel
(
modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
id INTEGER UNSIGNED AUTO_INCREMENT NOT NULL,
...
PRIMARY KEY (modified, id),
...
) ENGINE=InnoDB;
と の両方CURRENT_TIMESTAMP
を使用しているため、このエラーが発生していると思いますAUTO_INCREMENT
。PHPにタイムスタンプの生成をさせずにこれを解決する方法はありますか(そのため、私のモデルは他のテーブルのように挿入して、コントローラーに汚い仕事をさせることができます)。