MySQL中删除后的自动增量

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我有一个MySQL表,其中包含一个主键字段_增加。在阅读了其他文章之后,我注意到人们有着相同的问题,有着不同的答案。一些人建议不要使用这个功能,另一些人则说它不能被“修复”。

我有:

table: course
fields: courseID, courseName

示例:表中的记录数:18。如果我删除记录16,17和18-我希望下一个记录输入的课程ID为16,但它将是19,因为最后一次输入课程ID是18。

我的SQL知识并不令人惊讶,但是否存在使用查询(或phpMyAdmin接口中的设置)刷新或更新此计数的方法?

此表将与数据库中的其他表相关联。


考虑到所有的建议,我决定忽略这个‘问题’。我将简单地删除和添加记录,同时让自动增量完成它的工作。我想这个数字是什么并不重要,因为它只是作为一个唯一的标识符使用,并且没有一个(如上面提到的)商业意思是。

对于那些我可能与我原来的帖子相混淆的人:我不想用这个领域来知道我有多少记录。我只是想让数据库看起来整洁一点,更有一致性。

提问于
用户回答回答于

你想做的事听起来很危险,因为这不是AUTO_INCREMENT...

如果确实希望找到最低未使用的键值,请不要使用AUTO_INCREMENT并手动管理你的钥匙。然而,这并不是一种推荐的做法。

退后一步问“为什么需要回收键值?“没有签名INT(或BIGINT)不能提供足够大的密钥空间?

你真的会有更多的18,446,744,073,709,551,615在应用程序生命周期中的唯一记录?

用户回答回答于
ALTER TABLE foo AUTO_INCREMENT=1

如果已经删除了最近的条目,那么应该将其设置为使用下一个最低可用项。与之相同,只要已经没有19,删除16-18就会将自动增量重置为使用16。

扫码关注云+社区