Ошибка внешних ключей - PullRequest
       21

Ошибка внешних ключей

0 голосов
/ 21 сентября 2011

Я изменял все свои таблицы, чтобы определить FK, и получаю ошибку при попытке этой таблицы studentRsp.

ALTER TABLE StudentRsp
add CONSTRAINT fk_rspDate
  FOREIGN KEY (rspDate)
  REFERENCES LecturerRsp(rspDate);

Получаю ошибку

Сообщение об ошибке: в ссылочная таблица 'LecturerRsp', которая соответствует списку ссылающихся столбцов во внешнем ключе 'fk_rspDate'. Не удалось создать ограничение. увидеть предыдущие ошибки.

rspDate определяется как первичный ключ в LecturerRsp

Ответы [ 2 ]

0 голосов
/ 21 сентября 2011

Сообщение об ошибке довольно ясно на самом деле - просто прочитайте его ...

* В ссылочной таблице 'LecturerRsp' нет первичных ключей или ключей-кандидатов, которые соответствуют списку ссылающихся столбцов во внешнемключ 'fk_rspDate'. *

Вы хотите сослаться на свою таблицу LecturerRsp и ее столбец rspDate - но это сообщение ясно говорит вам: rspDate не является первичным ключом в этой таблице,и при этом он не является частью уникального индекса / ограничения.

Любое из этих двух требований является обязательным условием для возможности ссылки на этот столбец из внешнего ключа.

Чтобы исправить это:

  • либо измените первичный ключ на LecturerRsp на столбец rspDate
  • , либо (если возможно) создайте уникальный индекс для этого столбца

Если вы не можете сделать ни одну из этих двух вещей, то вы не можете ссылаться на этот столбец из внешнего ключа.

0 голосов
/ 21 сентября 2011

Найдите в вашем StudentRsp строки, у которых есть поле, которого нет в вашей таблице LecturerRsp. Другими словами, ограничение требует, чтобы все поля в столбце foriegn key соответствовали полю в столбце первичного ключа, и в StudentRsp есть ключ, которого нет в LecturerRsp

Пример:

LecturerRsp         StudentRsp
 pk_Col1             fk_Col1
  1                     1
  2                     2
  3                     4
  4                     5 ***
...