Als u de twee verklaringen within a transaction
. uitvoert , zullen eventuele fouten ervoor zorgen dat zowel de invoeging als de update worden teruggedraaid.
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;
Als er nieuwe rijen zijn ingevoegd in de brontabel nadat ze zijn gelezen, moet u het blok mogelijk opnieuw uitvoeren, eventueel met een gewijzigde waar-voorwaarde.