Настройте внешние ключи с помощью переноса таблицы

У меня есть несколько таблиц базы данных, которые я объединил в одну, но мне нужно обновить ссылку на внешний ключ для создаваемой новой записи:

name: parent_old
id | name  | ...
--------------------
1  | test1 | ...
2  | test2 | ...
3  | test3 | ...

name: parent_migrated
id | name  | ...
--------------------
22 | test1 | ...
23 | test2 | ...
24 | test3 | ...

name: child
id | fk | date | ...
--------------------
1  | 1  | 2016...
2  | 2  | 2016...

Учитывая вышеприведенные таблицы, «parent_old» — это исходная таблица, записи которой были перенесены в «parent_migrated», и, как вы можете видеть, значения «id» соответствующих записей были обновлены после миграции. Мне нужно обновить ссылку внешнего ключа (столбец fk) в таблице ‘child’ до новых значений в таблице ‘parent_migrated’. Могу ли я сделать это с чем-то вроде:

INSERT INTO parent_migrated (name,...) SELECT name,... FROM parent_old

или мне нужно сделать это подходом с несколькими вызовами?

Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …