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
どうして?
AEROPUERTO
には、CIUDAD
に存在しないレコードを指すレコードがあります。
AEROPUERTO
のどのレコードにそのような問題があるかを調べるには:
select * from AEROPUERTO where CODIGO_CIUDAD not in (select CODIGO from CIUDAD)
結果セットが空でない場合は、doレコードが孤立しています。 AEROPUERTO_FK
外部キーを作成するには、欠落しているCIUDAD
レコードを追加する必要があります。またはエラーのあるすべてのAEROPUERTO.CODIGO_CIUDAD
をnullに更新します(この場合はnull許容フィールドですが、これらの空港レコードの都市情報は失われます)。
外部キーを追加する列から主キー制約を削除します