如果最后一行被删除,则自动增量不会按顺序递增

时间:2015-04-26 14:48:24

标签: mysql sql

我有一个包含自动增加的主键ID的表。如果我删除最后一行(最高id,例如id = 22)并插入一个新行,则新的id从23开始。我应该怎么做才能再次使用22?

示例表:

@Override
public void configure() throws Exception {
   from("netty:tcp://{{netty.host}}:{{netty.port}}?sync=false")
         .routeId("pbxToBean").unmarshal("castor").to("mock:result");
}

2 个答案:

答案 0 :(得分:1)

这来自MYSQL开发者评论。查看更多https://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

  

为了重置auto_increment,在某些情况下   最近添加的行已删除,请使用:

ALTER TABLE your_table_name AUTO_INCREMENT=1234  //this is a demo number

然后将来的插入将再次从1234开始编号(除非您的行数仍大于1234,然后将来的插入将从最大数字+ 1开始)。

答案 1 :(得分:1)

执行查询以检查auto_increment(SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE table_schema ='database'AND table_name ='table')是否大于max(audited_id)并执行伪插入。您可以将该逻辑放在--init-file或触发器上,请参阅此文章。

http://dev.mysql.com/doc/refman/5.6/en/innodb-auto-increment-handling.html#c12158