Используя MySQL 5.1.49, я пытаюсь внедрить систему тегов
проблема у меня есть с таблицей с двумя столбцами: id(autoincrement)
, tag(unique varchar)
(InnoDB)
При использовании запроса INSERT IGNORE INTO tablename SET tag="whatever"
значение автоматического приращения id
увеличивается, даже если вставка была проигнорирована.
Обычно это не проблема, но я ожидаю много возможных попыток вставить дубликаты для этой конкретной таблицы, что означает, что мое следующее значение для поля id
новой строки будет слишком сильно переходить на уровень.
Например, у меня будет таблица с тремя строками, но плохая id
1 | test
8 | testtext
678 | testtextt
Кроме того, если я не делаю INSERT IGNORE
и просто выполняю регулярную INSERT INTO
и обрабатываю ошибку, поле автоматического приращения все равно увеличивается, поэтому следующая истинная вставка по-прежнему является неправильным автоматическим приращением.
Есть ли способ остановить автоматическое приращение, если существует попытка дублирования строки INSERT
?
Как я понимаю для MySQL 4.1, это значение не будет увеличиваться, но последнее, что я хочу сделать, - это либо сделать много инструкций SELECT
заранее, чтобы проверить, существуют ли теги или, что еще хуже, понизить моя версия MySQL.