Mysql повторяющаяся ошибка ввода только после перезапуска демона mysql - PullRequest
1 голос
/ 01 апреля 2012

У меня довольно странная проблема с 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 Ответ

0 голосов
/ 01 апреля 2012

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

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

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

...