这是我的代码:

create table test3 (
    num int(11) not null auto_increment,
    primary key (num)
) auto_increment=2147483644;

insert into test3 values();
insert into test3 values();
insert into test3 values();
insert into test3 values(); //duplicate key error

select * from test3;


您会注意到使用了2147483644、2147483645和2147483647,但没有使用2147483646。我可以手动将某些内容设置为2147483646,但是我想了解为什么会这样。我的innodb autoinc锁定模式是1(我的版本的默认设置)。

最佳答案

在2015年以前,此行为已报告为错误:

Bug #75941 auto_increment value jumps from the max row value - 2 to max

该错误报告中的评论声称该错误早在几年前(大约在2010-2011年)就已报告。

尚未解决。我刚刚测试了MySQL 8.0.11,其行为仍然如您所描述。

如果您想增加错误的优先级,则应该登录MySQL错误站点并单击“影响我”按钮。

无论如何,您不应该依赖于连续的自动增量键的值。他们唯一的要求是唯一。

10-08 07:06