MySQL 主键自增 ID 不连贯
发现问题
今天使用 MySQL 数据库时,删除了一条记录,新增数据时,发现主键自增的 ID 不连贯。
不连贯的几种原因
删除记录:当你从表中删除记录时,自增 ID 并不会重新排序或填补已删除的 ID。这就是为什么删除记录后,ID 序列可能会出现间断的原因之一。
事务回滚:如果你使用了事务,并且在事务中插入了记录但后来回滚了,自增 ID 可能会跳过被回滚的 ID。
表引擎:不同的数据库表引擎对自增 ID 的处理方式可能有所不同。例如,MySQL 中的 InnoDB 和 MyISAM 表引擎对自增 ID 的处理方式是不同的。
手动插入 ID:如果你在插入记录时手动指定了 ID,那么系统就会使用你指定的 ID 而不是自增 ID。
重置自增主键的起始值
在 MySQL 中,可以使用 ALTER TABLE
语句来重置自增主键的起始值。语法如下:
1 | ALTER TABLE table_name AUTO_INCREMENT = value; |
其中,table_name 是要重置自增主键的表的名称,而 value 是要设置的新的自增起始值。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ShameYang's Blog!