1
Oracleでは、次のようなMERGE文を使用します。両方のテーブルでMERGEを更新できますか?
merge into live_table l
using (
select *
from staging_table
where merged = 'N'
) s
on (i.id = s.id)
when matched then
update l.description = s.description
when not matched then
insert (l.id, l.description)
values (s.id, s.description)
;
ステージング表には、マージ後に「Y」に更新する「マージ済」フラグも含まれています。
しかし、これは以前のトランザクションで既にマージされたレコードのフラグも更新します。これを回避するには、挿入/更新を1つずつ処理するループとして記述しますが、これはMERGE文の容易さを損なうでしょう。
マージされたフラグを更新するにはどうすればマージステートメントの影響を受ける行だけが更新されると思いますか?
既にそう考えていました。確認していただきありがとうございます! –