Oracle
 sql >> Base de données >  >> RDS >> Oracle

Copier les enregistrements avec insert select, puis mettre à jour les attributs dans le même ensemble d'enregistrements

Si vous exécutez les deux instructions within a transaction , tout échec entraînera l'annulation de l'insertion et de la mise à jour.

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;

Si de nouvelles lignes sont insérées dans la table source après leur lecture, vous devrez peut-être réexécuter le bloc, avec une condition où modifiée si nécessaire.