Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Nie znaleziono kluczy nadrzędnych ORA-02298?

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

Gdy ten klucz jest wymuszany, Oracle sprawdza, czy wszystkie identyfikatory pracownika obecne w tabeli Pakiety robocze znajdują się w tabeli Pracownicy.

Twoje opcje:

Znajdź nieprawidłowe klucze, uruchamiając

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

a następnie wstaw je do tabeli pracowników.

Inną opcją jest użycie NOVALIDATE tak, że istniejące dane nie są sprawdzane, ale wszystkie nowe wstawki/aktualizacje będą sprawdzane. Zobacz te skrzypce do demonstracji na ten temat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Typ danych Oracle:czy powinienem używać VARCHAR2 czy CHAR?

  2. Oracle Apex 5 — pasek stopki podobny do tego w Kreatorze aplikacji

  3. Nie można pobrać wyników, przekazując dane wejściowe jako ścieżkę xml w oracle

  4. Instalacja Oracle Grid — brakujące pakiety compat-libcap1-1.10 i inne

  5. Oracle — pobierz datę/godzinę w milisekundach z pola typu DATE