Сброс значения автоматического приращения до 0 может быть вызван несколькими причинами.
Причина 1
Вы используете TRANCATE table
для очистки таблицы. TRUNCATE
не только удаляет строки, но и сбрасывает значение автоинкремента по проекту.
Вместо этого используйте DELETE FROM table
.
Причина 2
Движок стола - InnoDB. InnoDB не хранит значение автоинкремента на диске, поэтому забывает его, когда сервер MySQL выключен. Когда MySQL запускается снова, механизм InnoDB восстанавливает значение автоинкремента следующим образом: SELECT (MAX(id) + 1) AS auto_increment FROM table
. Это ошибка , которая исправлена в версии 8.0 MySQL.
Смена таблицы движка: ALTER TABLE table ENGINE = MyISAM
. Или обновите сервер MySQL до версии 8.0 после его выпуска.