外键引用显示以下错误:表'table'中的列与现有主键或UNIQUE约束不匹配

时间:2015-03-31 19:20:30

标签: sql sql-server

我有两张表ProbCodesWorkOrders

ProbCodes

  • 主键:ProbCodeID
  • 专栏:ProblemCode

WorkOrders

  • 主键:WorkOrderId
  • 专栏:ProblemCode

我的问题是:

如何在ProblemCode中的ProbCodesProblemCode中的WorkOrders之间创建外键引用?

2 个答案:

答案 0 :(得分:1)

在ProbCodes中对ProblemCode设置UNIQUE约束。

错误消息说明了一切。 WorkOrders中的外键必须引用ProbCodes中的主键或唯一列。否则,如果ProbCodes中存在重复的ProblemCodes,SQL如何知道在父表中引用哪一行?

答案 1 :(得分:1)

我得到了解决方案:

ALTER TABLE ProbCodes 添加约束UK_CO UNIQUE(ProblemCode)

ALTER TABLE WorkOrders 加 FOREIGN KEY(ProblemCode)REFERENCES ProbCodes(ProblemCode);