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 TABLE
或ALTER 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