2015-01-09 2 views
2

Всякий раз, когда оператор INSERT IGNORE встречает дублируемую запись, первичный ключ Auto Increment увеличивается.MySQL - INSERT IGNORE увеличивает первичный ключ auto_increment

Я нахожусь на общем хостинге на базе cpanel, так как я могу использовать innodb_autoinc_lock_mode=0 на MySQL?

Я использую питона-MySQL библиотеку для вставки значений в database..here является Snipper:

cursor.execute ("""INSERT IGNORE INTO database (title, introduction) VALUES (%s, %s)""", (title, pure_introduction))

+0

Можете ли вы опубликовать код снайпера, который демонстрирует проблему, которую вы описываете? Он не обязательно должен быть вашим фактическим кодом, просто сохраните его [минимальный] (http://stackoverflow.com/help/mcve). – Reti43

+0

фрагмент кода, добавленный к вопросу :) – Vasa

ответ

0

Вы не можете. Autoinc_lock_mode является глобальным переменным, и вы не можете установить его как обычный пользователь (если, если вы администратор сервера, то вы можете установить его в тузде конфигурационного файла)

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_autoinc_lock_mode

Что вы можете сделать вручную проверяя дубликаты перед вставкой, если вам действительно нужны значения автоинкремента consequtice.

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