客官,留下你的贊;成爲我的粉絲,一起上車哦!評論區歡迎你的留言
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官方文檔可找到問題的原因,以及解決方法。
- 查看關於自動增長變量設置的默認值
show variables like 'auto_incr%';
上圖中兩個變量的含有如下:
變量名 | 作用 |
---|---|
auto_increment_increment | 自增鍵的步長(默認1) |
auto_increment_offset | 自增鍵的起始值(默認1) |
問題原因:
因爲起始值爲1,步長爲3,所以id主鍵我們看到的是1 4 7
解決方法
- 設置自增步長爲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;