ID 字段 auto_increment 无法正常工作

Posted

技术标签:

【中文标题】ID 字段 auto_increment 无法正常工作【英文标题】:Id field auto_increment not functioning properly 【发布时间】:2013-07-29 10:04:11 【问题描述】:

在我的数据库中,我首先填写了 50 条虚拟数据记录,只是为了检查我的网站是否正常工作。然后我删除了不需要的记录,并添加了新记录,现在我有 20 条记录。当我从站点数据注册用户进入数据库。但是现在每次新用户注册到站点时,我的 ID 字段是主键和自动增量,显示新用户的 ID 为 51 而不是 21。下一个用户 52 不是22.为什么会这样以及如何使下一个Id为23。

【问题讨论】:

使用TRUNCATE TABLEALTER TABLE YOURTABLE AUTO_INCREMENT = 1 【参考方案1】:

你必须重置你的增量:

尝试 ALTER TABLE Table_name AUTO_INCREMENT = 21;如果你的下一个数字是 21

【讨论】:

参见以下手册:dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html 如果您使用的是 mysql 控制面板,如 php my admin,您可以按如下方式重置该字段:***.com/questions/3019698/…(见第二个答案)【参考方案2】:

自动增量是表定义中的一个计数器,而不仅仅是“下一个可用数字”,所以当您添加 50 条记录时,您将计数器设置为 51,当您删除它们时,计数器将保持在 51,直到您重置它或添加更多记录。

您可以使用以下命令重置计数器:How to reset AUTO_INCREMENT in MySQL?

【讨论】:

【参考方案3】:

自动增量字段独立于表中数据的“计数”工作,它会随着新记录的增加而不断增加,但在删除时不会减少。

您需要手动重置您的字段。

【讨论】:

以上是关于ID 字段 auto_increment 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

mysql插入数据不成功,核对字段及类型了,无误,怎么回事? id为AUTO_INCREMENT

Laravel 4 迁移错误 - 创建两个 auto_increment 主键字段

InnoDB引擎的auto_increment字段和MyISAM引擎的auto_increment字段的异同

MySQL 字段 AUTO_INCREMENT 根据 YEAR

(MYSQL) Auto_increment 基于另一个表的最大 id 的临时表?

MySQL基础之 AUTO_INCREMENT