1. ホーム
  2. oracle

[解決済み] 外部キーの追加エラー。ORA-02298: 検証できません - 親キーが見つかりませんでした

2022-02-14 09:46:41

質問

私は基本的に2つのテーブルを持っています、1つはtable1という名前で、もう1つはtable2という名前です。

table2に外部キーを挿入し、table1の親としてリンクされていることを確認したい(両方のテーブルに同じカラムがあるため:EMPNOという)。

私が試したのはこれです。

ALTER TABLE table2 
ADD FOREIGN KEY (EMPNO) 
REFERENCES table1(EMPNO)  

しかし、ライブSQLを実行するとエラーが発生します。

ORA-02298: 検証できません (SQL_EOTBMPLTBLKHWFZRYEHITBYIH.) - 親キーが見つからず

解決方法は?

このエラーは、以下のことを意味します。 table2 は、親テーブルに存在しない外部キー値を持っています。 table1 . それらを特定するには、次のようなクエリを実行します。

SELECT DISTINCT EMPNO FROM table2 WHERE EMPNO NOT IN (
    SELECT EMPNO FROM table1)

これらの悪いキー値を修正し、次に ALTER TABLE を再度実行します。