Nếu bạn chạy hai câu lệnh within a transaction
, bất kỳ lỗi nào sẽ khiến cả bản chèn và bản cập nhật bị khôi phục.
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;
Nếu có các hàng mới được chèn vào bảng nguồn sau khi chúng được đọc, bạn có thể cần phải chạy lại khối, với điều kiện đã thay đổi nếu thích hợp.