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

后端 潘老师 4周前 (01-30) 29 ℃ (0) 扫码查看

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


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/12781.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】