小编典典

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

sql

我在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

为什么?


阅读 132

收藏
2021-05-05

共1个答案

小编典典

AEROPUERTO该点中有一些记录,这些记录在中不存在CIUDAD

要找出哪些记录AEROPUERTO存在此类问题:

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

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

2021-05-05