我是整个数据库场景的新手,只是学习。我有一个数据库mysql,我使用phpmyadmin编辑字段等。我创建了一个auto_incremenet'id'字段,设置为主要。如果我添加5个字段,则id为'1,2,3,4,5'。如果我删除所有这些字段并添加另外5个字段,为什么ID会转到'6,7,8,9,10'? (而不是回到0,因为从技术上讲,其他领域不再存在,所以它的独特权利?)。有没有办法让id按顺序数字? 1,2,3,4,5?
答案 0 :(得分:5)
您无需担心。您的主键应该是unsigned int,它可以容纳足够多的数字。
答案 1 :(得分:1)
我相信这是因为在使用关系数据库系统时,您可以将行“链接”到其他行,通常是通过其ID。如果您开始重用ID,那么最终可能会出现混乱的情况。
您可以使用以下查询将auto_increment计数器重置为您想要的任何内容:
ALTER TABLE tableName AUTO_INCREMENT=123
如果要删除表格中的所有行,可以使用TRUNCATE,它也会重置计数器。
TRUNCATE TABLE tableName
答案 2 :(得分:1)
我认为这种行为的主要原因是效率,这意味着MySQL不需要跟踪哪些数字未被使用,只需要知道上次使用的是哪个数字。
答案 3 :(得分:0)
查看this问题。但基本上是:
ALTER TABLE mytable AUTO_INCREMENT = 1;
<强>更新强>
如前所述,摆弄自动生成的PK会无限期地引起很多麻烦。或者写一堆样板代码来做家务。
答案 4 :(得分:0)
您必须重置自动增量,以便重新编号auto_incremented值,在此处阅读有关解决方案的更多信息http://www.dbuggr.com/milly/reset-auto-increment-mysql/。