अगर आप दो स्टेटमेंट 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;
यदि स्रोत तालिका में पढ़ने के बाद नई पंक्तियाँ डाली गई हैं, तो आपको ब्लॉक को फिर से चलाने की आवश्यकता हो सकती है, यदि उपयुक्त हो तो एक बदली हुई स्थिति के साथ।