如何更改表以在两个表之间创建外键

时间:2019-01-27 11:12:04

标签: sql-server

我有4个表(GuardianChildBranchChildBranch)。

ChildGuardian弱。 ChildBranchChildBranch的弱关联实体。

它们都有主键和数据。

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)

如何在ChildChildBranch之间创建外键?

我尝试过:

ALTER TABLE ChildBranch
ADD FOREIGN KEY (Email)
REFERENCES Child(Email);

但是出现了这个错误

  

在被引用表'Child'中没有与外键'FK__ChildBran__Email__7B5B524B'中的引用列列表匹配的主键或候选键。

我希望在ChildChildBranch表之间创建链接。

2 个答案:

答案 0 :(得分:0)

由于ChildBranch具有电子邮件和名字的复合主键。答案应如下所示:

ALTER TABLE ChildBranch 添加外键(电子邮件,名字) 参考Child(Email,FirstName);

感谢所有帮助我了解这一点的人。

答案 1 :(得分:0)

CREATE TABLE订单(     OrderID int NOT NULL,     OrderNumber int NOT NULL,     PersonID int,     主键(OrderID),     CONSTRAINT FK_PersonOrder外键(PersonID)     参考人员(PersonID) );

ALTER TABLE订单 添加外键(PersonID)参考Persons(PersonID);