Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Copie os registros com a seleção de inserção e atualize os atributos no mesmo conjunto de registros


Se você executar as duas instruções within a transaction , quaisquer falhas farão com que a inserção e a atualização sejam revertidas.
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;

Se houver novas linhas inseridas na tabela de origem depois de lidas, talvez seja necessário executar o bloco novamente, com uma condição where alterada, se apropriado.