Каскадное копирование в SQL? Можно ли автоматически копировать запись и связанные с ней записи? - PullRequest
0 голосов
/ 26 февраля 2011

Привет, мне интересно, существует ли такая вещь, как «каскадная копия», которая учитывает отношения внешнего ключа при копировании записей, так что, если вы копируете запись, имеющую связанные с ней записи, они также неявно копируются?Если нет, то есть ли элегантный способ сделать это, который будет масштабироваться, так что, если я добавлю новые отношения FK или изменю свои таблицы, мне не придется повторно тестировать код?

Моя ситуация такова, что у меня есть основная база данных и небольшая база данных.мобильные базы данных, которые я хотел бы периодически объединять с основной.Допустим, у меня есть Клиенты - Заказы - OrderItems, и в мобильной БД создается новый Клиент с новой информацией о заказах, я хотел бы объединить ее с основной БД, чтобы найти все дерево.

ОБНОВЛЕНО: ЯЯ использую SQLite на основной и спутниковой БД.Я просто хотел бы донести заказ клиента без необходимости вручную копировать соответствующие заказы и элементы заказа.

Любые мысли будут высоко оценены!

Ответы [ 2 ]

2 голосов
/ 26 февраля 2011

Нет встроенного механизма, который обеспечивал бы функцию автоматического копирования строки и связанных с ней данных в заданную базу данных, когда требуется копия. Эта логика должна быть заключена в хранимую процедуру, которая должна обновляться и тестироваться при создании новых отношений.

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

Microsoft Sync Framework

0 голосов
/ 26 февраля 2011

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

Я бы пояснил природу вашей базы данных и структуру того, чего вы пытаетесь достичь, прежде чем мы скажем слишком много.

...