Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-02298 Родителските ключове не са намерени?

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

Когато този ключ е приложен, Oracle проверява дали всички Employeeid, присъстващи в таблицата Workpackages, присъстват в таблицата Employees.

Вашите опции:

Намерете проблемните ключове, като стартирате

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

и след това ги вмъкнете в таблицата на служителите.

Друг вариант е да използвате NOVALIDATE така че съществуващите данни да не се проверяват, но всички нови вмъквания/актуализации ще бъдат валидирани. Вижте тази цигулка за демонстрация на това.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:Изтриване на дубликати в група от таблица с присъединяване

  2. Пример за клауза Oracle PIVOT с подзаявка

  3. Oracle - Ляво външно съединение с клауза where

  4. преминаване през таблицата с данни, за да получите две конкретни стойности от всеки ред

  5. Наистина ли е по-добре да се използват нормализирани таблици?