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

ORA-02298 Forældrenøgler blev ikke fundet?

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

Når denne nøgle håndhæves, kontrollerer Oracle, at alle medarbejder-id'er, der er til stede i Workpackages-tabellen, er til stede i Employees-tabellen.

Dine muligheder:

Find de fornærmende nøgler ved at køre

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

og indsæt dem derefter i medarbejdertabellen.

En anden mulighed er at bruge NOVALIDATE så eksisterende data ikke kontrolleres, men eventuelle nye indsættelser/opdateringer vil blive valideret. Se denne violin til demo om dette.



  1. Returværdi af Oracle.DataAccess eksekver ikke-forespørgsel (lagret proc)

  2. PHP SQL-forespørgselsresultater

  3. Script til import af mysql-database fra en bestemt filplacering

  4. 3 måder at generere et CREATE TABLE-script fra en eksisterende tabel i SQLite