sql >> Databáze >  >> RDS >> Oracle

Zkopírujte záznamy pomocí příkazu insert select a poté aktualizujte atributy ve stejné sadě záznamů

Pokud spustíte dva příkazy within a transaction , jakékoli selhání způsobí vrácení přílohy i aktualizace.

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;

Pokud jsou do zdrojové tabulky vloženy nové řádky poté, co byly přečteny, možná budete muset spustit blok znovu, případně se změněnou podmínkou where.



  1. nástroje pro testování zátěže mysql

  2. MySQL JOIN - Vraťte NULL pro duplicitní výsledky v levé tabulce

  3. Rychlé nasazení aplikace Visual Studio 2010 s databází SQL

  4. Přidání textu do databáze