sql >> Databasteknik >  >> RDS >> Oracle

Kopiera poster med insert select, uppdatera sedan attribut i samma uppsättning poster

Om du kör de två satserna within a transaction , kommer eventuella fel att göra att både infogningen och uppdateringen återställs.

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;

Om det finns nya rader infogade i källtabellen efter att de har lästs, kan du behöva köra blocket igen, med ett ändrat villkor om det är lämpligt.



  1. För- och nackdelar med att använda paket i Oracle

  2. pg.rb segmenteringsfel [Mojave-uppgradering]

  3. mysql count fungerar inte korrekt?

  4. Hitta två kolumner i laravel som har lika värden via Eloquent?