У меня есть две базы данных с одинаковым расположением таблиц. Есть дюжина или около того таблиц интересов. Они - ряд ФК между ними.
Меня попросили написать хранимую процедуру для копирования данных из базы данных A в базу данных B на основе PK родительской таблицы в верхней части иерархии. Я могу получить только одно значение или список значений. Я должен выбрать все записи из базы данных A, которые соответствуют значению (ям), и вставить / обновить их в базе данных B. Это включает и все записи в дочерних таблицах.
Мои вопросы - какой самый лучший (самый эффективный / лучший метод) способ сделать это?
Должен ли я написать дюжину выбора из ... вставить в ... заявления?
Должен ли я объединить таблицы вместе, чтобы попытаться вставить их во все таблицы одновременно?
Спасибо!
Дополнительная информация:
Запись должна быть вставлена, если ее там еще нет. (на основе PK соответствующей таблицы). В противном случае оно должно быть обновлено.
Очевидно, мне нужно перейти ко всем дочерним таблицам, так что в родительской таблице будет только одна запись, но дочерняя таблица может иметь 10, а дочерняя таблица может иметь 500. Мне, конечно, понадобится чтобы обновить запись, если она уже существует, вставьте ее, если это не касается дочерних таблиц ...
UPDATE:
Я думаю, что это упростило бы решение, если бы я просто удалил все записи, связанные с ключом верхнего уровня, а затем вставил бы все новые записи, а не пытался делать обновления.
Так что я думаю, что вопросы лучше всего сделать дюжину:
delete from ... where ... in ...
select from ... where ... in ...
insert into...
или лучше сделать какие-нибудь необычные объединения, чтобы сделать все вставки в одном выражении sql?