SQL错误:ORA-02298:无法验证(SYSTEM.AEROPUERTO_FK) - 未找到父键

and*_*and 15 database oracle oracle10g

我在Oracle SQL Developer上遇到以下错误:

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
Run Code Online (Sandbox Code Playgroud)

为什么?

rse*_*nna 32

AEROPUERTO那一点上有记录不存在的记录CIUDAD.

要找出哪种记录AEROPUERTO有这种问题:

select * from AEROPUERTO where CODIGO_CIUDAD not in (select CODIGO from CIUDAD)
Run Code Online (Sandbox Code Playgroud)

如果结果集是不是空的,你这样做有orphanaged记录.您需要添加缺少的CIUDAD记录才能创建AEROPUERTO_FK外键,或者将所有错误更新AEROPUERTO.CODIGO_CIUDAD为null(如果这是一个可以为空的字段,但您将丢失这些机场记录的城市信息).