删除条目时,Int ID会跳数字

时间:2018-11-16 17:07:32

标签: java mysql

  1. 实际上,我已经编写了一个代码在MySQL表中删除和添加新用户,并且两者都正常工作。
  2. id是主键和自动增量键。
  3. 问题是假设最后一个条目的ID为'9',当我删除该条目并添加新条目时,新条目的ID为'10'而不是'9'。

1 个答案:

答案 0 :(得分:3)

根据3.6.9 Using AUTO_INCREMENT15.6.1.5 AUTO_INCREMENT Handling in InnoDB,一旦生成auto_increment值,就不会重复使用。从表中删除行时,您会发现auto_increment数字序列中的间隔。

即使插入事务发生回滚:

  

如果生成自动增量值的事务回滚,则这些自动增量值将“丢失”。一旦为自动增量列生成了一个值,就无法回滚该值,无论“ INSERT-like”语句是否完成以及包含的事务是否回滚。这种丢失的值不会重复使用。因此,在表的AUTO_INCREMENT列中存储的值中可能存在间隙。