Mysql повторяющаяся ошибка записи только после перезапуска демона mysql

У меня довольно странная проблема с MySQL.

У меня есть таблица с автоматически увеличенными первичными ключами.

Primary keys are: 1, 2, 3, 4, 5, 6
Next auto increment key is 7.

Теперь я удаляю последние две записи.

Primary keys are: 1, 2, 3, 4
Next auto increment key is 7.

Все хорошо.

Теперь, по любой причине (возможно, обновление), я перезапускаю демон MySQL.

Primary keys are: 1, 2, 3, 4
Next auto increment key is 5.

Так как у этой таблицы есть внешний ключ, я получаю повторяющуюся ошибку ввода.

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry

Как я могу убедиться, что эти повторяющиеся ошибки ввода перестают происходить каждый раз, когда я обновляю mysql?

Обновление: я только что нашел эту ошибку с 2003 года! http://bugs.mysql.com/bug.php?id=199

1 ответ

Вот как innodb вычисляет следующее значение автоинкремента: оно сохраняет его в памяти, а при запуске просто получает MAX(id) + 1 значение.

Не уверен, как ваша вторая часть связана с этой проблемой. Внешний ключ не имеет ничего общего с дубликатами, поскольку FK может дублироваться.

Таким образом, вы, вероятно, объяснили проблему с дубликатами недостаточно хорошо. По крайней мере, вам нужно объяснить, что на самом деле вы делаете, чтобы получить duplicate entry ошибка

Другие вопросы по тегам