我在 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
为什么?
最佳答案
AEROPUERTO
中的记录指向CIUDAD
中不存在的记录。
要找出 AEROPUERTO
的哪些记录有此类问题:
select * from AEROPUERTO where CODIGO_CIUDAD not in (select CODIGO from CIUDAD)
如果结果集不为空,则您确实有孤立的记录。您需要添加缺少的 CIUDAD
记录才能创建 AEROPUERTO_FK
外键,或更新所有错误的 AEROPUERTO。 CODIGO_CIUDAD
为空(如果这是一个可为空的字段,但您将丢失这些机场记录的城市信息)。
关于SQL 错误 : ORA-02298: cannot validate (SYSTEM. AEROPUERTO_FK) - 找不到父键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4702310/