我有一个包含自动增加的主键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");
}
答案 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