gpt4 book ai didi

php - AUTO_INCRMENT 和 CURRENT_TIMESTAMP 协同工作的复合键

转载 作者:行者123 更新时间:2023-11-29 13:41:11 24 4
gpt4 key购买 nike

与许多其他有关使用 AUTO_INCRMENT 的复合键的问题类似,我收到以下错误:

表定义不正确;只能有一个自动列,并且必须将其定义为键

我正在做的是记录表中所有更改的历史记录。每次进行更改时,都会插入带有新时间戳的新行,而先前的修改保持不变。

我关心的 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_TIMESTAMPAUTO_INCRMENT。那么有没有一种方法可以解决这个问题,而无需让 PHP 生成时间戳(这样我的模型就可以像插入任何其他表一样插入,让 Controller 完成脏工作)。

最佳答案

MySQL 的错误消息还有更多不足之处...

自动增量列必须位于索引的开头。在您的情况下,您需要添加另一个索引 - KEY id(id)

关于php - AUTO_INCRMENT 和 CURRENT_TIMESTAMP 协同工作的复合键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18056244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com