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

ORA-02298 Chaves pai não encontradas?

ALTER TABLE WORKPACKAGES
ADD FOREIGN KEY (EMPLOYEEID) REFERENCES EMPLOYEES (EMPLOYEEID);

Quando esta chave é aplicada, o Oracle verifica se todos os employeeid presentes na tabela Workpackages estão presentes na tabela Employees.

Suas opções:

Encontre as chaves ofensivas executando
SELECT employeeid
FROM   workpackages
WHERE  employeeid NOT IN (SELECT employeeid
                          FROM   employees); 

e, em seguida, insira-os na tabela de funcionários.

Outra opção é usar NOVALIDATE para que os dados existentes não sejam verificados, mas quaisquer novas inserções/atualizações serão validadas. Veja este violino para demonstração sobre isso.