Вот мой код:
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, но я хочу понять, почему это происходит. Мой режим блокировки autoinc блокировки - 1 (по умолчанию для моей версии).
Такое поведение сообщалось как ошибка раньше, здесь, в 2015 году:
Ошибка # 75941 Значение auto_increment переходит от максимального значения строки - от 2 до макс.
Комментарий в этом отчете об ошибке утверждает, что ошибка была сообщена много лет назад (около 2010-2011 гг.).
Пока не исправлено. Я только что тестировал MySQL 8.0.11, и поведение по-прежнему описывается.
Вы должны зайти на сайт с ошибкой MySQL и нажать кнопку "Affects Me", если вы хотите увеличить приоритет ошибки.
Независимо от этого, вы не должны полагаться на значения последовательного числа автоматического увеличения. Их единственное требование - быть уникальным.