Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-02298 Clés parentales introuvables ?

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

Lorsque cette clé est appliquée, Oracle vérifie que tous les ID d'employé présents dans la table Workpackages sont présents dans la table Employees.

Vos choix :

Trouvez les clés incriminées en exécutant

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

puis insérez-les dans la table des employés.

Une autre option consiste à utiliser NOVALIDATE afin que les données existantes ne soient pas vérifiées, mais toute nouvelle insertion/mise à jour sera validée. Voir ce violon pour une démonstration à ce sujet.