背景
最近接手一个老项目,发现它数据库里表的自增id全是偶数……,新插入的数据也是2为步幅递增,逆天
调研
刚开始以为创建表的时候设置的步幅,后来发现新建的表,正常的表,插入的id,还全是偶数!最终,发现是数据库层面的配置;
-- 查看全局变量(影响所有新连接)
SHOW GLOBAL VARIABLES LIKE 'auto_increment%';
-- 查看当前会话的变量(仅影响当前连接)
SHOW SESSION VARIABLES LIKE 'auto_increment%';
起始值和步幅都是2!
解决
-- 设置自增步幅=1
SET GLOBAL auto_increment_increment = 1;
-- 设置初始值=1
SET GLOBAL auto_increment_offset = 1;
这样设置mysql重启后可能会失效,需要查看mysql配置文件中,是否修改了相应的设置;如果配置文件中有相关配置,且不对,就修改为1,如果没有就不用管了;
这个月太忙了,水一篇