我一直在改变我的所有表来定义FK,并在尝试这个表studentRsp时遇到错误。
ALTER TABLE StudentRsp
add CONSTRAINT fk_rspDate
FOREIGN KEY (rspDate)
REFERENCES LecturerRsp(rspDate);
收到错误
错误消息:中没有主键或候选键 引用的表'LecturerRsp'与引用列列表匹配 在外键'fk_rspDate'中。无法创建约束。看到 以前的错误。
rspDate被定义为LecturerRsp
中的主键答案 0 :(得分:0)
在StudentRsp中查找具有LecturerRsp表中不存在的字段的行。换句话说,约束要求foriegn键列中的所有字段与主键列中的字段匹配,并且StudentRsp中的一个键在LecturerRsp中不存在
示例:
LecturerRsp StudentRsp
pk_Col1 fk_Col1
1 1
2 2
3 4
4 5 ***
答案 1 :(得分:0)
错误信息非常清楚 - 只需阅读它......
*引用的表中没有主键或候选键 'LecturerRsp'匹配外部的引用列列表 键'fk_rspDate'。*
您想引用您的表LecturerRsp
及其列rspDate
- 但此消息清楚地告诉您:rspDate
不是该表的主键,也不是该表的一部分唯一索引/约束。
这两者中的任何一个都是您能够从外键引用该列的要求。
解决此问题:
LecturerRsp
上的主键更改为列rspDate
如果您无法执行这两项操作中的任何一项,则无法从外键引用该列。