Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORA-02298 Übergeordnete Schlüssel nicht gefunden?

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

Wenn dieser Schlüssel erzwungen wird, prüft Oracle, ob alle in der Workpackages-Tabelle vorhandenen Mitarbeiter-IDs in der Employees-Tabelle vorhanden sind.

Ihre Optionen:

Finden Sie die anstößigen Schlüssel, indem Sie sie ausführen

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

und fügen Sie sie dann in die Mitarbeitertabelle ein.

Eine weitere Option ist die Verwendung von NOVALIDATE sodass vorhandene Daten nicht überprüft werden, aber alle neuen Einfügungen/Aktualisierungen validiert werden. Siehe diese Geige für eine Demo dazu.