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.