tudo está em questão.
Eu tenho uma tabela chamada tableA na qual temos índices, chaves estrangeiras e restrições.
Eu tenho que modificar o conteúdo em uma coluna chamada column1. Sendo este um sistema de produção, quero
1) create a copy of tableA called tableA_temp
2) Perform the data change (some concatenation and regexp_replace)
3) Obtain validation that the change is correct
4) rename tableA to tableA_old
4) Rename tableA_temp to tableA.
Uma vez renomeado para tableA, as restrições e índices se aplicariam à nova tableA?
Meu palpite é que sim, mas eu precisaria de um pouco de validação.
Não.
Ok, depende se você os cria na cópia.
Você pode usar o
DBMS_REDEFINITION
pacote para "reorganizar" uma tabela como esta. Ele fornece funcionalidade para você criar uma tabela temporária com conteúdo modificado de uma tabela existente conforme você descreve. Ele também permite que você copie as concessões, gatilhos, índices etc. para a nova tabela e, em seguida, alterne as tabelas para que a tabela temporária se torne a tabela ativa.Veja este artigo para uma demonstração funcional.