Conteúdo do cotidiano e gratuito de tecnologia em Banco de dados, Servidores Windows, Linux, BSD e Desenvolvimento em PL/SQL.
domingo, 19 de janeiro de 2014
[Oracle] - FKs apontando para as PKs e UKs de uma tabela
As vezes acontece o erro abaixo quando tentamos truncar ou deletar todas as informações de uma tabela. Pare resolver é necessário identificar quais tabelas apontam para a tabela que eu quero truncar e precisamos desabilitar essas FKs.
Erro Oracle:
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
1 - Identificando as FKs:
SELECT owner,
table_name,
constraint_name
FROM all_constraints ci
WHERE ci.constraint_type = 'R'
AND (ci.r_owner , ci.r_constraint_name) IN
(SELECT owner,
constraint_name
FROM all_constraints c
WHERE owner = '&dono'
AND table_name = '&tabela'
AND constraint_type IN ('P','U')
)
2 - Desabilite as constraints retornadas:
ALTER TABLE owner.tabela DISABLE CONSTRAINT nome_constraint;
3 - Execute o truncate das tabelas filhas e pai:
TRUNCATE TABLE owner.tabela_filha;
TRUNCATE TABLE owner.tabela_pai;
4 - Habilite as constraints retornadas:
ALTER TABLE owner.tabela ENABLE CONSTRAINT nome_constraint;
Fonte:
http://oraclemais.blogspot.com.br/2010/11/fks-apontando-para-as-pks-e-uks-de-uma.html
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário