解决MySQL自增主键不连续

客官,留下你的赞;成为我的粉丝,一起上车哦!评论区欢迎你的留言

MySQL 自增主键不连续问题

案例如下

表结构如下

 CREATE TABLE `demo` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

在表中插入3条记录

insert into demo values(null),(null),(null);

在这里插入图片描述
查看表中的数据

select * from demo;

解决MySQL自增主键不连续_第1张图片

发现自增id步长不是1(1 2 3 4 5....),而是步长为3自增(1 4 7 .....)。
问题原因

通过查看MySQL官方文档可找到问题的原因,以及解决方法。

  1. 查看关于自动增长变量设置的默认值
 show variables like 'auto_incr%';

解决MySQL自增主键不连续_第2张图片
上图中两个变量的含有如下:

变量名 作用
auto_increment_increment 自增键的步长(默认1)
auto_increment_offset 自增键的起始值(默认1)

问题原因:因为起始值为1,步长为3,所以id主键我们看到的是1 4 7

解决方法
  1. 设置自增步长为1并查看是否设置成功
set @@auto_increment_increment=1;  //@@表示系统变量 设置步长为1
show variables like 'auto_incr%';  //查看步长是否设置成功

解决MySQL自增主键不连续_第3张图片
2. 清空表中的数据并插入3条记录

truncate table demo;   //清空表中的数据
insert into demo values(null),(null),(null); //插入3条记录

3.查看结果集

select * from demo;

解决MySQL自增主键不连续_第4张图片

你可能感兴趣的:(MySQL,mysql,自增主键,auto_increment,不连续)