web-dev-qa-db-ja.com

SQLエラー:ORA-02298:検証できません(SYSTEM.AEROPUERTO_FK)-親キーが見つかりません

OracleSQLDeveloperで次のエラーが発生します。

Error starting at line 1 in command:
    ALTER TABLE AEROPUERTO ADD CONSTRAINT AEROPUERTO_FK FOREIGN KEY (CODIGO_CIUDAD) REFERENCES CIUDAD(CODIGO)

Error report:
    SQL Error: ORA-02298: cannot validate (SYSTEM.AEROPUERTO_FK) - parent keys not found
    02298. 00000 - "cannot validate (%s.%s) - parent keys not found"
    *Cause:    an alter table validating constraint failed because the table has
               child records.
    *Action:   Obvious

どうして?

15
andandandand

AEROPUERTOには、CIUDADに存在しないレコードを指すレコードがあります。

AEROPUERTOのどのレコードにそのような問題があるかを調べるには:

select * from AEROPUERTO where CODIGO_CIUDAD not in (select CODIGO from CIUDAD)

結果セットが空でない場合は、doレコードが孤立しています。 AEROPUERTO_FK外部キーを作成するには、欠落しているCIUDADレコードを追加する必要があります。またはエラーのあるすべてのAEROPUERTO.CODIGO_CIUDADをnullに更新します(この場合はnull許容フィールドですが、これらの空港レコードの都市情報は失われます)。

32
rsenna

外部キーを追加する列から主キー制約を削除します

2
Amit Kumar