2011-01-15 4 views
12

sto ottenendo il seguente errore in su Oracle SQL Developer:SQL errore: ORA-02.298: non può convalidare (SYSTEM.AEROPUERTO_FK) - chiave del genitore, non trovato

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 

Perché?

risposta

29

Ci sono record in AEROPUERTO che puntano a record che non esistono in CIUDAD.

Per scoprire quali record di AEROPUERTO hanno questo tipo di problema:

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

Se il set di risultati non è vuota, si fai record sono orphanaged. Per creare la chiave esterna AEROPUERTO_FK, o è necessario aggiungere tutti gli errati AEROPUERTO.CODIGO_CIUDAD all'annullamento (se questo è un campo Null, ma si perderanno le informazioni sulla città per i record dell'aeroporto).

2

rimuovere il vincolo di chiave primaria dalla colonna in cui si desidera aggiungere la chiave esterna