我的INSERT ... SELECT查询将2,546条记录插入到一个表中,该表将所有插入记录的ID范围从176,439添加到178,984。所有记录均已成功插入(178984 - 176439 + 1 = 2,546)。现在,如果启动我的应用程序并添加一个新记录,我的下一个ID显示为180534.我不明白mysql没有将它设置为178985.如果我重复这个过程会发生类似的行为。
我的innodb_autoinc_lock_mode设置为1,默认值,代表“连续”。
有什么想法?
答案 0 :(得分:1)
记录数不必与自动增量ID匹配。记录可能已被删除。手动设置或出于其他原因设置自动增量。您可以使用此命令设置下一个ID
ALTER TABLE tbl AUTO_INCREMENT = 178985;
之后,应在该数字之上生成ID。
答案 1 :(得分:0)
是的,您运行了一些其他插入查询,行被拒绝可能是由于唯一约束但自动增量仍然增加,或者之后被删除。或者,如果其他人(或您在另一个会话中)启动了一个事务,插入了一些行但尚未提交... auto_increment值也会更大。