MySQL 表的主键一般都要使用自增 ID (AUTO_INCREMENT
) ,当你删除其中一条,会造成自增 ID 不连续,这可能导致需要使用 ID 进行判断时的不准确。这里分情况记录一下解决方法。
一、删除全部数据的情况
- 如果用的是navicat客户端,选中数据表,右键使用
截断表
而非清空表
。 - 如果用的是命令行,使用:
truncate table 表名;
二、删除部分数据的情况
如果刚刚删除完部分数据还没有新增数据,使用如下命令校正自增id。这里的1不是指从1开始,而是从最大值加1开始自增。
alter table 表名 auto_increment=1; |
如果删除完部分数据后又添加了部分数据,即已经出现了不连续的id序列,此时就需要重置该序列。有两种方法:
方法1:
SET @auto_id = 0; |
方法2:
先删除id列,然后新增id列同时设为主键并自增
alter table 表名 drop 自增字段名; |