如何在表格中自动递增?

时间:2018-11-17 21:29:47

标签: mysql

我正在使用MySQL,并且有一个包含3列的表:

page_id title content 

在page_id列中,我检查了AUTO_INCREMENT和PRIMARY。 插入到此列后,它看起来像这样:

1
2
3
...

但是,例如,如果我删除第二行,则会得到:

1
3
...

为什么? 例如,我希望在删除第二行时得到:

1
2
...

,并且ID自动更新。 我该如何解决?

谢谢

1 个答案:

答案 0 :(得分:0)

删除行后保留索引是一种如果另一个表具有指向该表的外键的链接,则保持正确的链接。编辑:如评论中所述:如果有效,则无需修复。

如果您确实要对主键进行重新排序,请首先备份您的数据库数据,然后可以使用以下查询:

SET @id = 0;
UPDATE `table` SET `table`.`page_id` = @id:= @id + 1;
ALTER TABLE `users` AUTO_INCREMENT = 1;

请小心 ,但是,如果您这样做有其他依赖于page_id值的表,这将是一件令人毛骨悚然的事情。在这种情况下,您还必须更新这些链接,例如使用ON UPDATE CASCADE引用操作。请here 执行此操作之前

详细了解它