У меня есть база данных main и база данных report, и мне нужно синхронизировать таблицу с main в report.
Однако, когда элемент удаляется в базе данных main, я хочу установить флаг IsDeleted в базе данных report.
Каков элегантный способ сделать это?
В настоящее время я использую оператор MERGE, например:
MERGE INTO report.TEST target
USING (SELECT * FROM main.TEST) source
ON (target.ID = source.ID)
WHEN MATCHED THEN
UPDATE SET (target... = source...)
WHEN NOT MATCHED THEN
INSERT (...) VALUES (source...)
;
Оператор WHEN NOT MATCHED дает мне все НОВЫЕ значения из main, но я также хочу обновить все значения OLD от report.
Я использую Oracle PL/SQL.