Ошибка SQL: ORA-02298: невозможно проверить (SYSTEM.AEROPUERTO_FK) - родительские ключи не найдены - PullRequest
15 голосов
/ 16 января 2011

Я получаю следующую ошибку в 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

Почему?

Ответы [ 2 ]

32 голосов
/ 16 января 2011

В AEROPUERTO есть записи, которые указывают на записи, которых нет в CIUDAD.

Чтобы узнать, какие записи AEROPUERTO имеют такую ​​проблему:

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

Если набор результатов не пустой, у вас do есть потерянные записи. Вам нужно будет добавить отсутствующие записи CIUDAD, чтобы создать внешний ключ AEROPUERTO_FK, или обновить все ошибочные AEROPUERTO.CODIGO_CIUDAD до нуля (если это поле может быть пустым, но вы потерять информацию о городе для этих записей аэропорта).

2 голосов
/ 05 февраля 2013

удалить ограничение первичного ключа из столбца, в который вы хотите добавить внешний ключ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...