【发布时间】:2019-01-27 11:12:04
【问题描述】:
我有 4 张桌子(Guardian、Child、Branch 和 ChildBranch)。
Child 弱于Guardian。 ChildBranch 是Child 和Branch 的弱关联实体。
它们都有主键和数据。
Guardian Primary Key : Email (PK, FK, varChar(100), not null)
Child Primary Key : Email (PK, FK, varChar(100), not null)
FirstName (PK, varChar(50), not null)
ChildBranch Primary Key : Email (PK, FK, varChar(100), not null)
FirstName (PK, varChar(50), not null)
Name (PK, varchar(50), not null)
如何在Child 和ChildBranch 之间创建外键?
我试过了:
ALTER TABLE ChildBranch
ADD FOREIGN KEY (Email)
REFERENCES Child(Email);
但是出现了这个错误
引用表“Child”中没有与外键“FK__ChildBran__Email__7B5B524B”中的引用列列表匹配的主键或候选键。
我希望在 Child 和 ChildBranch 表之间创建链接。
【问题讨论】:
-
如果你想在
ChildBranch和Child之间创建一个外键,那么你引用的表CHild必须有一个完全 匹配您的 FK 引用。它必须是相同的数据类型,并且您不能引用复合 PK 的一部分(如果您在Child上有复合 PK)。很明显,Email单独 NOT 是您的Child表上的 PK .... 向我们展示两个表Child和 @987654345 的 完整 结构@所以我们可以提供帮助 -
你能提供带有两个表键的模式脚本吗?
-
深表歉意,我今天才开始使用堆栈溢出。
标签: sql-server