Oracle
 sql >> Database >  >> RDS >> Oracle

ORA-02298 Chiavi padre non trovate?

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

Quando questa chiave viene applicata, Oracle verifica che tutti gli ID dipendenti presenti nella tabella Workpackages siano presenti nella tabella Employees.

Le tue opzioni:

Trova le le chiavi offensive eseguendo

SELECT employeeid
FROM   workpackages
WHERE  employeeid NOT IN (SELECT employeeid
                          FROM   employees); 

e quindi inserirli nella tabella dei dipendenti.

Un'altra opzione è utilizzare NOVALIDATE in modo che i dati esistenti non vengano controllati, ma eventuali nuovi inserimenti/aggiornamenti verranno convalidati. Vedi questo violino per una demo su questo.