与有关复合键的许多其他问题类似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 生成时间戳的情况下解决这个问题(所以我的模型可以像插入任何其他表一样插入,让控制器做脏活)。