У меня есть базовая таблица со столбцами:
- id (первичный с AI)
- имя (уникальное)
- и т.д.
Если уникальный столбец не существует, вставьте строку, иначе UPDATE строку....
INSERT INTO pages (name, etc)
VALUES
'bob',
'randomness'
ON DUPLICATE KEY UPDATE
name = VALUES(name),
etc = VALUES(etc)
Проблема в том, что если он выполняет UPDATE, значение auto_increment в столбце id увеличивается. Поэтому, если выполняется целая группа UPDATES, идентификатор auto_increment проходит через крышу.
По-видимому, это была ошибка: http://bugs.mysql.com/bug.php?id=28781
... но я использую InnoDB на mySQL 5.5.8 на общедоступном хостинге.
Другие люди, имеющие проблемы без решения несколько лет назад: предотвратить автоинкремент на дубликат вставки MYSQL и Почему автоинкремент MySQL увеличивается при неудачных вставках?
Идеи об исправлении? Возможно, я каким-то образом структурировал базу данных?
****** EDIT ****: Кажется, добавление innodb_autoinc_lock_mode = 0 в файл my.ini устраняет проблему, но какие параметры у меня для общего хостинга?
****** ИЗМЕНИТЬ 2 ******: Хорошо, я думаю, что мой единственный вариант - переключиться на MyISAM в качестве механизма хранения. Будучи мега-новичком mySQL, я надеюсь, что это не вызовет много проблем. Да?