2つのステートメントをwithin a transaction
実行した場合 、失敗すると、挿入と更新の両方がロールバックされます。
insert into tgt..
select * from src
where <condition>
and row_status <> 'copied'; --ignoring records after they have been copied once?
update src
set row_status = 'copied'
where <same_where_condition_as_before>
commit;
読み取られた後にソーステーブルに新しい行が挿入された場合は、必要に応じてwhere条件を変更して、ブロックを再度実行する必要がある場合があります。