невозможно изменить таблицу, чтобы добавить внешний ключ

alter table course_relation
add foreign key (offered_By)
references department_relation(dept_cd)

alter table department_relation
add foreign key(hod)
references staff_relation(staff_no)

alter table staff_relation
add foreign key (dept_cd)
references department_relation(dept_cd)

// третий пункт не работает, но первые два работают нормально сообщение об ошибке:

Сообщение 547, уровень 16, состояние 0, строка 10 Оператор ALTER TABLE конфликтует с ограничением FOREIGN KEY «FK__staff_rela__dept__1BC821DD». Конфликт произошел в базе данных «Royal_Poly_DB», таблица «dbo.Department_Relation», столбец «Dept_Cd».


person Rae-Win    schedule 12.07.2017    source источник


Ответы (1)


Вы не можете создавать циклические ссылки на внешние ключи.

В этом заявлении

  alter table department_relation
  add foreign key(hod)
  references staff_relation(staff_no)

В этом запросе на изменение вы создаете ссылку на внешний ключ в «Department_relation» из таблицы «staff_relation».

alter table staff_relation
add foreign key (dept_cd)
references department_relation(dept_cd)

В этом запросе на изменение вы создаете ссылку на внешний ключ в «staff_relation» из таблицы «Department_relation».

Это круговая зависимость внешнего ключа, и это разрешено.

person A. S. Mahadik    schedule 12.07.2017