我在mysql表中有一个名为“ id”的列,这也是自动递增的主键。
当我删除行时,其ID也会被删除,从而在我的ID序列中产生“空洞”,例如
1、2、3、9、10、30等
有没有办法重复使用这些已删除的ID:S?
使用:
ALTER TABLE [your table name here] AUTO_INCREMENT = 1
…将根据表中现有的最高现有值将auto_increment值重置为下一个。这意味着它不能用于校正多个间隙。
这样做的唯一原因是为了美观的记录-数据库不在乎记录是否是连续的,仅是它们始终保持相互关联。无需为了数据库而“更正”这些值。
如果id要向用户显示这些值,这就是为什么希望它们始终是顺序的,那么我建议添加一个代理键。使用代理键向用户显示,因此可以根据需要对值进行重新排序,但是参考完整性不会受到影响。在这种情况下,代理键将是一个整数列。
id