mysql AUTO_INCREMENT在INSERT .... SELECT表上跳过有效的数字范围

时间:2012-10-14 20:13:54

标签: mysql

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

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

有什么想法?

2 个答案:

答案 0 :(得分:1)

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

ALTER TABLE tbl AUTO_INCREMENT = 178985;

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

答案 1 :(得分:0)

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