Mysql重启auto int主键

时间:2011-12-09 13:37:25

标签: mysql database primary-key auto-increment

您好可以在我的数据库中保存已删除的自动递增主键。例如

我有 Name_ID

  • 1
  • 2
  • 3
  • 4

如果我删除主键4并再次插入,则插入的主键应为4。

如此。姓名1 2 3 4 5


我删除了主键5(名称1 2 3 4)


我添加的数据主键应该是5而不是6.谢谢!

3 个答案:

答案 0 :(得分:2)

在这些情况下,自动生成的字段总是存在间隙。

如果您的审核或历史记录表存储了ID = 4,ID = 5的行,该怎么办?然后再删除它们?你如何区分行?

在您的示例中,您只删除了最后一行?你删除ID = 1是什么?什么?

也就是说,它们只是该表所特有的内部数字(以及任何相关的表,如审计表):不应附加外部含义

答案 1 :(得分:2)

与此处的其他评论和答案一样,我不建议这样做,特别是如果自动增量列中的数据是从外部引用的,但您可以通过ALTER TABLE将下一个自动增量编号设置为特定值查询

ALTER TABLE T_YourTable AUTO_INCREMENT=4

您也可以删除该列,然后重新添加具有相同属性的列(如果您有很多行,这可能会很昂贵)。

答案 2 :(得分:0)

为什么?

它只是一个唯一的标识符。

您还会遇到数据库群集的漏洞以及每当您回滚与提交的事务重叠的插入事务时 - 而不仅仅是在删除数据时。

填补空白的机制复杂,缓慢且难以维护 - 并且不需要。