解決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;

在這裏插入圖片描述

發現自增id步長不是1(1 2 3 4 5....),而是步長爲3自增(1 4 7 .....)。
問題原因

通過查看MySQL官方文檔可找到問題的原因,以及解決方法。

  1. 查看關於自動增長變量設置的默認值
 show variables like 'auto_incr%';

在這裏插入圖片描述
上圖中兩個變量的含有如下:

變量名 作用
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%';  //查看步長是否設置成功

在這裏插入圖片描述
2. 清空表中的數據並插入3條記錄

truncate table demo;   //清空表中的數據
insert into demo values(null),(null),(null); //插入3條記錄

3.查看結果集

select * from demo;

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章