Почему MySQL не должен восстанавливать первичный ключ из неудачной / откатной транзакции? - PullRequest
0 голосов
/ 04 октября 2019

по ссылке; Значение автоинкремента MySQL увеличивается, даже когда вставка завершается неудачно из-за ошибки

.. упоминается, что "Отсутствует несколько значений автоинкремента (пропусков в последовательности) из-за неудачной транзакции / транзакции откатапросто отлично "

НО ... Пропущенные числа в автоинкременте (первичный ключ) означают меньшую емкость в таблице для размещения максимального количества записей.

Мои вопросы:

1) Почему бы не выполнить неудачную транзакцию (неявную) откат значения первичного ключа? еще не сохранились, еще не постоянны. Другими словами, почему можно пропустить значение первичного ключа при неудачной (или откатанной) транзакции?

2) Почему бы не восстановить исходное состояние, по крайней мере, должно быть «вариантом» для пользователя MySQL;разработчик?

1 Ответ

0 голосов
/ 04 октября 2019

Если у вас есть несколько транзакций, выполняемых одновременно с одной и той же таблицей, и те, которые получили более раннее значение автоинкремента, будут откатаны, у вас обязательно будут пробелы в автоинкременте, иначе обработка автоинкремента была бы намного более сложной.

Не беспокойтесь об исчерпании значений автоинкремента. Этого не произойдет ( см. Максимальное целочисленное значение 2 ^ 64-1 ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...