Sql 两列引用另一个表中的单个列
这里也提出了类似的问题 但答案中没有显示语法。我想知道如何在SQL server中实现这一点。下面的语法给出了错误Sql 两列引用另一个表中的单个列,sql,sql-server,foreign-keys,foreign-key-relationship,Sql,Sql Server,Foreign Keys,Foreign Key Relationship,这里也提出了类似的问题 但答案中没有显示语法。我想知道如何在SQL server中实现这一点。下面的语法给出了错误 ALTER TABLE ItemIssue ADD CONSTRAINT FK_ItemIssue_Person FOREIGN KEY (PersonID, AdvisorID) REFERENCES Person (PersonID) ; 错误:外键中引用列的数量与表“ItemIssue”中引用列的数量不同 -- Create Tables CREATE TABLE I
ALTER TABLE ItemIssue ADD CONSTRAINT FK_ItemIssue_Person
FOREIGN KEY (PersonID, AdvisorID) REFERENCES Person (PersonID)
;
错误:外键中引用列的数量与表“ItemIssue”中引用列的数量不同
-- Create Tables
CREATE TABLE ItemIssue (
ItemIssueID int identity(1,1) NOT NULL,
PersonID int,
AdvisorID int,
)
;
CREATE TABLE Person (
PersonID int NOT NULL,
Name nvarchar(500),
)
) 您需要定义两个外键,每列一个:
ALTER TABLE ItemIssue ADD CONSTRAINT FK_ItemIssue_Person
FOREIGN KEY (PersonID) REFERENCES Person (PersonID)
;
ALTER TABLE ItemIssue ADD CONSTRAINT FK_ItemAdvisor_Person
FOREIGN KEY (AdvisorID) REFERENCES Person (PersonID)
;
不可能为引用一列的两列创建一个外键。分别创建它们:
ALTER TABLE ItemIssue
ADD CONSTRAINT FK_ItemIssue_Person_Person FOREIGN KEY (PersonID) REFERENCES Person (PersonID),
ADD CONSTRAINT FK_ItemIssue_Advisor_Person FOREIGN KEY (AdvisorID) REFERENCES Person (PersonID);
定义两个外键,每列一个- 桌子 合同-HospidPharmacyId列 临终关怀-临终关怀PK 药剂师
- 使用以下查询,我们可以为1列应用2个外键
- 在HospidPharmacyId列的合同表中,我们可以在
合同表,反之亦然。谢谢您的评论。我研究了这个主题,但我不知道为什么两个外键要用于另一个表的一列?你能解释一下吗?