我在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
CIUDAD
要找出哪些记录AEROPUERTO存在此类问题:
select * from AEROPUERTO where CODIGO_CIUDAD not in (select CODIGO from CIUDAD)
如果结果集是不是空的,你 这样做 有orphanaged记录。您需要添加丢失的CIUDAD记录才能创建AEROPUERTO_FK外键, 或者将 所有错误记录更新AEROPUERTO.CODIGO_CIUDAD为null(如果这是可为空的字段,但是您将丢失这些机场记录的城市信息)。
AEROPUERTO_FK
AEROPUERTO.CODIGO_CIUDAD