0

我一直在更改我的所有表以定义 FK,并且在尝试此表 studentRsp 时出现错误。

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

我收到错误

错误消息:引用的表“LecturerRsp”中没有与外键“fk_rspDate”中的引用列列表匹配的主键或候选键。无法创建约束。查看以前的错误。

rspDate 被定义为 LecturerRsp 中的主键

4

2 回答 2

0

在 StudentRsp 中查找具有 LecturerRsp 表中不存在的字段的行。换句话说,约束要求外键列中的所有字段与主键列中的字段匹配,并且 StudentRsp 中有一个键在 LecturerRsp 中不存在

例子:

LecturerRsp         StudentRsp
 pk_Col1             fk_Col1
  1                     1
  2                     2
  3                     4
  4                     5 ***
于 2011-09-21T04:43:49.743 回答
0

错误消息非常清楚 - 只需阅读它......

*引用表 'LecturerRsp' 中没有与外键 'fk_rspDate' 中的引用列列表匹配的主键或候选键。*

您想引用您的表LecturerRsp及其列rspDate- 但此消息清楚地告诉您:rspDate不是该表上的主键,也不是唯一索引/约束的一部分。

这两个中的任何一个都是您能够从外键引用该列的要求。

要解决这个问题:

  • 要么将主键更改LecturerRsp为在列上rspDate
  • 或(如果可能)在该列上创建唯一索引

如果您不能做这两件事中的任何一个,那么您就不能从外键引用该列。

于 2011-09-21T04:48:02.247 回答