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
ошибка