Я пытаюсь заменить таблицу InnoDB на новую таблицу, и я хочу, чтобы все ссылки внешнего ключа указывали на старую таблицу, чтобы указать на новую таблицу.
Итак, я пробовал это:
SET foreign_key_checks = 0;
ALTER TABLE foo RENAME foo_old;
ALTER TABLE foo_new RENAME foo;
К сожалению, даже с отключением foreign_key_checks все ссылки, указывающие на foo, изменяются так, чтобы они указывали на foo_old. Теперь я ищу либо
- способ изменения ссылок на внешние ключи без восстановления всей таблицы, OR
- способ переименования таблицы без обновления ссылок на внешние ключи.
Я попытался сбросить внешние ключи и воссоздать их, но поскольку таблицы огромны, требуется несколько часов. Весь смысл замены таблицы состоял в том, чтобы изменить схему с ограниченным временем простоя.