MySQL 插入ID自增为2的原因及解决办法

IT 文章2年前 (2024)发布 小编
0 0 0

在使用MySQL时,auto_increment主键ID在insert插入时自增为2,而不是我们熟知的自增1,这是什么原因呢,有什么好的解决办法?

首先我们需要查看配置,执行如下SQL指令:

show variables like '%increment%';

执行结果发现:

ad

程序员导航

优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站

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指令:

ad

AI 工具导航

优网导航旗下AI工具导航,精选全球千款优质 AI 工具集

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),学习愉快哦!

© 版权声明

相关文章

暂无评论

暂无评论...