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

Truncar tabela no Oracle recebendo erros


Você tem que trocar a instrução TRUNCATE por instruções DELETE, mais lentas e registradas, mas essa é a maneira de fazer isso quando as restrições estão em vigor.
DELETE mytablename;

Ou isso ou você pode encontrar as chaves estrangeiras que estão referenciando a tabela em questão e desativá-las temporariamente.
select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||CONSTRAINT_NAME||';'
from user_constraints
where R_CONSTRAINT_NAME='<pk-of-table>';

Onde pk-of-table é o nome da chave primária da tabela que está sendo truncada


Execute a saída da consulta acima. Feito isso, lembre-se de habilitá-los novamente, basta alterar DISABLE CONSTRAINT em ENABLE CONSTRAINT