sql >> Database >  >> RDS >> Oracle

Kopieer records met selectie invoegen en werk vervolgens attributen bij in dezelfde set records

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.



  1. Hoe NIET REGEXP werkt in MySQL

  2. Databaseservices op AWS en Oracle Cloud Platform

  3. php/mysql-account activeren

  4. Hoe R verbinden met Oracle?