一尘不染

在MySQL中删除后自动递增

mysql

我有一个带有主键字段且具有AUTO_INCREMENT的MySQL表。在阅读了这里的其他文章后,我发现人们遇到了同样的问题,答案也各不相同。有些人建议不要使用此功能,其他人则说它不能被“修复”。

我有:

table: course
fields: courseID, courseName

示例:表中的记录数:18.如果我删除记录16、17和18-我希望输入的下一条记录的courseID为16,但是由于最后输入的courseID为18,所以它将为19。

我的SQL知识不是很出色,但是是否可以通过查询(或phpMyAdmin界面中的设置)刷新或更新此计数?

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


鉴于所有建议,我决定忽略此“问题”。我将简单地删除和添加记录,同时让自动增量完成它的工作。我猜数字到底有多大无关紧要,因为它仅用作唯一标识符,并且没有(如上所述)
业务 含义。

对于那些可能对我的原始帖子感到困惑的人:我不想使用此字段来知道我有多少条记录。我只是希望数据库看起来整洁,并具有更多的一致性。


阅读 667

收藏
2020-05-17

共1个答案

一尘不染

您尝试做的事情听起来很危险,因为这不是预期的用途AUTO_INCREMENT

如果您真的想找到最低的未使用密钥值,请不要使用AUTO_INCREMENT,并手动管理密钥。但是,这不是推荐的做法。

退后一步,问“ 为什么需要回收键值? ”未签名INT(或BIGINT)是否没有提供足够大的键空间?

18,446,744,073,709,551,615在应用程序的整个生命周期中,您是否真的会拥有比唯一记录更多的记录?

2020-05-17