2016-01-02 5 views
-2

У меня есть таблица, в которой вставлены данные и ID номер работы в качестве auto_increment и первичный ключ, проблема я столкнулся в том, что когда есть неправильная сделка или ошибка вставки строки таблицы, идентификационный номер перескакивает последовательность.Предотвратить MySQL автоинкремент прыжки последовательность

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

Я прошел через какой-то другой вопрос, заданный по этому же вопросу, и я знаю, что innodb использование авто инкремент особенность в начале сделки, но я хочу как-то это должно быть в конце

+4

Почему это проблема? Если вы удалите записи, также будут пробелы. Это показатель того, что вы делаете что-то неправильное, когда чувствуете, что вы возитесь с значением автоматического увеличения. Это просто уникальное значение для записи –

+2

Пробелы не являются проблемой. Нет проблем. Эти цифры не обязательно должны быть секвенциальными, только уникальными. Пожалуйста, расскажите немного о рассуждениях, это сэкономит вам много времени, если вы откажетесь от наличия последовательных номеров. –

+0

Проверьте здесь http://www.timrosenblatt.com/blog/2008/03/21/insert-where-not-exists/ или http://stackoverflow.com/questions/5924762/prevent-autoincrement-on-mysql- duplicate-insert – Yogus

ответ

0

documentation ясно по этому вопросу ,

  • «потеряли» значение автоматического приращения и пробела последовательности

Во всех режимах блокировки (0, 1, и 2), если транзакция, которая генерируется значениями автоинкрементного откат, те значения автоинкремента «потеряны». Как только значение генерируется для столбца с автоматическим увеличением, его нельзя отменить, независимо от того, завершен ли оператор «INSERT-like», и откатывается ли содержащая транзакция. Такие потерянные значения не используются повторно. Таким образом, могут быть пробелы в значениях, хранящихся в столбце AUTO_INCREMENT таблицы.

Что вы хотите сделать с InnoDB невозможным.

+0

Можете ли вы предложить, что еще я могу использовать, я использую phpmyadmin – user3421366

Смежные вопросы