Медленный сброс auto_increment

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

Я пытаюсь сделать это:

mysql> select max(id) from item;
+----------+
| max(id)  |
+----------+
| 97972232 |
+----------+
1 row in set (0.05 sec)

mysql> alter table item auto_increment=1097972232;

В другой сессии:

afrolov@A1-DB1:~$ mysql -u root -e "show processlist" | grep auto_increment
472196  root    localhost       test    Query   39      copy to tmp table       alter table item auto_increment=1097972232

MySQL начинает перестраивать таблицу! Почему MySQL должен это делать? Как можно избежать перестроения огромных таблиц при настройке значения auto_increment?

MySQL 5.0, InnoDB.
Определение таблицы:

 CREATE TABLE `item` (
      `id` bigint(20) NOT NULL auto_increment,
      `item_res_id` int(11) NOT NULL default '0',
      `stack_count` int(11) NOT NULL default '0',
      `position` int(11) NOT NULL default '0',
      `place` varchar(15) NOT NULL default '',
      `counter` int(11) NOT NULL default '-1',
      `is_bound` tinyint(4) NOT NULL default '0',
      `remove_time` bigint(20) NOT NULL default '-1',
      `rune_res_id` int(11) default NULL,
      `rune_id` bigint(20) default NULL,
      `avatar_id` bigint(20) NOT NULL,
      `rune_slot_res_id` int(11) default NULL,
      `is_cursed` tinyint(4) NOT NULL,
      PRIMARY KEY  (`id`),
      UNIQUE KEY `avatar_id` (`avatar_id`,`place`,`position`),
      UNIQUE KEY `rune_id` (`rune_id`),
      KEY `idx_item_res_id` (`item_res_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=97972233 DEFAULT CHARSET=utf8;

О том, почему я должен это сделать. Короче говоря, я хочу обойти проблему mysql innodb по поводу сброса значения auto_increment при перезапуске сервера. Иногда мы копируем строки из наших таблиц в другие таблицы, и мы должны оставить идентификатор строки без изменений. Когда мы добавляем одну строку (например, с id = 1) в table1, копируем строку в table2, удаляем строку из table1 и перезапускаем MySQL, тогда, когда мы создаем новую одну строку в table1, эта строка также получит id = 1. Поэтому, если нам придется скопировать строку в table2, мы получим уникальное нарушение ограничения. У нас уже много кода, и все будет сложно переписать. Корректировка значения автоинкремента кажется самым простым способом решения этой проблемы.

Добавлено:

MySQL 5.5 - все тоже самое :(

Ответы на вопрос(5)

Ваш ответ на вопрос