Допустим, у нас есть база данных с таблицей, которая имеет много других связанных таблиц. Если бы вы нарисовали схему базы данных, это была бы таблица в центре, из которой по спирали вырастали бы многие взаимосвязи внешних ключей.
Чтобы сделать его более конкретным, скажем, две записи в этой центральной таблице: Initech и Contoso . Initech и Contoso связаны со многими другими записями в связанных таблицах, таких как Сотрудники , AccountingTransactions и т. Д. Предположим, что эти два слились (Initech купил Contoso) и с точки зрения данных, это действительно это так же просто, как объединение всех записей. Какой самый простой способ взять все связанные с Contoso записи, заставить их указать Initech, а затем удалить Contoso?
ОБНОВЛЕНИЕ с CASCADE очень заманчиво приближается, но, очевидно, оно не может работать без отключения ограничений и последующего их включения (гадость).
Есть ли хороший общий способ сделать это, не выискивая каждую отдельную связанную таблицу и не перенося их одну за другой? Это должно быть общим требованием. В этом проекте он встречается в двух местах и его можно суммировать следующим образом: сущность А должна контролировать все текущие элементы управления сущности В. Как я могу это сделать?
До слияния:
Companies
ID Name
1 Contoso
2 Initech
Employees
ID Name CompanyId
1 Bob 1
2 Ted 2
После слияния:
Companies
ID Name
2 Initech
Employees
ID Name CompanyId
1 Bob 2
2 Ted 2
Все мои попытки поиска касались только вопросов о слиянии отдельных баз данных ... очень жаль, если об этом уже спрашивали.