Подтвердить что ты не робот

Ошибка SQL: ORA-02298: не удается проверить (SYSTEM.AEROPUERTO_FK) - родительские ключи не найдены

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

Почему?

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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