【问题标题】:How to alter table to create foreign keys between two tables如何更改表以在两个表之间创建外键
【发布时间】:2019-01-27 11:12:04
【问题描述】:

我有 4 张桌子(GuardianChildBranchChildBranch)。

Child 弱于GuardianChildBranchChildBranch 的弱关联实体。

它们都有主键和数据。

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 表之间创建链接。

【问题讨论】:

标签: sql-server


【解决方案1】:

由于 ChildBranch 具有电子邮件和名字的复合主键。答案应该是这样的:

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

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

【讨论】:

    【解决方案2】:

    创建表订单 ( OrderID int 非空, OrderNumber int 非空, 个人 ID 整数, 主键(订单 ID), CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID) 参考人员(PersonID) );

    或者

    ALTER TABLE 订单 添加外键(PersonID) REFERENCES Person(PersonID);

    【讨论】:

      猜你喜欢
      • 2021-08-19
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 1970-01-01
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多