MySQL пропускает 2147483646 в колонке с автоинкрементом int (11)

0

Вот мой код:

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 (по умолчанию для моей версии).

  • 0
    Этот тест получен из какой-то реальной проблемы? Или вы проводите какое-то тестирование?
Показать ещё 1 комментарий
Теги:
innodb
auto-increment

1 ответ

1

Такое поведение сообщалось как ошибка раньше, здесь, в 2015 году:

Ошибка # 75941 Значение auto_increment переходит от максимального значения строки - от 2 до макс.

Комментарий в этом отчете об ошибке утверждает, что ошибка была сообщена много лет назад (около 2010-2011 гг.).

Пока не исправлено. Я только что тестировал MySQL 8.0.11, и поведение по-прежнему описывается.

Вы должны зайти на сайт с ошибкой MySQL и нажать кнопку "Affects Me", если вы хотите увеличить приоритет ошибки.

Независимо от этого, вы не должны полагаться на значения последовательного числа автоматического увеличения. Их единственное требование - быть уникальным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню