我有一个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...)
;
Run Code Online (Sandbox Code Playgroud)
该WHEN NOT MATCHED语句为我提供了所有新值main,但我也希望更新所有OLD值report.
我正在使用Oracle PL/SQL.