在使用MySQL时,auto_increment主键ID在insert插入时自增为2,而不是我们熟知的自增1,这是什么原因呢,有什么好的解决办法?
首先我们需要查看配置,执行如下SQL指令:
show variables like '%increment%';
执行结果发现:
auto_increment_increment 2
auto_increment_offset 1
注意:
1、auto_increment_increment (每次自增至的数量)
2、 auto_increment_offset(初始值)
由于默认设置的auto_increment_increment值等于2,这表示每次插入数据时,AUTO_INCREMENT的值都会自动增加 2。如果需要设置增加步长为其他值,只需要将数字替换为相应的值即可。
如果auto_increment_increment=2,比如我们将自增步长设置为1,执行如下SQL指令:
set @@global.auto_increment_increment=1;
set @@auto_increment_increment=1;
如果auto_increment_offset=2,执行如下SQL指令:
set @@global.auto_increment_offset=1;
set @@auto_increment_offset=1;
这样就实现自增的初始值从1开始,每次也以1的步长自增。
一般设置每次自增的数据属性和初始值的属性,即:
#每次自增为2
set @@auto_increment_increment =2;
#初始值设置成为2
set @@auto_increment_offset =2;
此两个属性的设置是为了交替数据库的id不重复,设置的数值根据交替库的数量来设置。
当然,在创建表时,也可以通过设置AUTO_INCREMENT_INCREMENT和AUTO_INCREMENT值来指定该表的自增属性,例如:
CREATE TABLE demo_table (
id int(11) NOT NULL AUTO_INCREMENT,
...,
PRIMARY KEY (id)
) AUTO_INCREMENT = 1
/*!50100 AUTO_INCREMENT_INCREMENT=2 */;
以上就是MySQL 插入ID自增为2原因及解决办法,希望对你有帮助,欢迎持续关注潘子夜个人博客(www.panziye.com),学习愉快哦!