0

我的 INSERT... SELECT 查询将 2,546 条记录插入到一​​个表中,这使我的所有插入记录的 ID 范围从 176,439 到 178,984。所有记录均已成功插入 (178984 - 176439 + 1 = 2,546)。现在,如果启动我的应用程序并添加一条新记录,我的下一个 ID 显示为 180534。我不明白 mysql 没有将其设置为 178985。如果我重复该过程,则会发生类似的行为。

我的 innodb_autoinc_lock_mode 设置为 1,默认值,代表“连续”。

有什么想法吗?

4

2 回答 2

1

记录数不必与自动增量 id 匹配。记录可能已被删除。自动增量是手动设置的或出于其他原因。您可以使用此命令设置下一个 id

ALTER TABLE tbl AUTO_INCREMENT = 178985;

之后,应在该数字之上生成 ID。

于 2012-10-14T20:20:14.687 回答
0

是的,您运行了其他一些插入查询,行可能由于唯一约束而被拒绝,但自动增量仍然递增,或者之后它们被删除。或者,如果其他人(或您在另一个会话中)启动了事务,插入了一些行但尚未提交...... auto_increment 值也会更大。

于 2012-10-14T20:24:56.970 回答