У меня есть база данных 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.