这是我的代码:
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(我的版本的默认设置)。
答案 0 :(得分:1)
以前,在2015年,此行为已报告为错误:
Bug #75941 auto_increment value jumps from the max row value - 2 to max
该错误报告中的评论声称该错误早在几年前(大约在2010-2011年)就已报告。
尚无修复。我刚刚测试了MySQL 8.0.11,其行为仍然如您所描述。
如果您想增加错误的优先级,则应该登录MySQL错误站点并单击“影响我”按钮。
无论如何,您不应依赖于自动连续键的值是连续的。他们唯一的要求就是与众不同。