在每本书中都写了外键实际上是其他表中的主键但是我们可以有一个外键,它不是任何其他表中的主键
答案 0 :(得分:42)
是 - 您可以拥有一个引用另一个表中唯一索引的外键。
CREATE UNIQUE INDEX UX01_YourTable ON dbo.YourTable(SomeUniqueColumn)
ALTER TABLE dbo.YourChildTable
ADD CONSTRAINT FK_ChildTable_Table
FOREIGN KEY(YourFKColumn) REFERENCES dbo.YourTable(SomeUniqueColumn)
答案 1 :(得分:14)
根据定义,外键必须引用某个表的候选键。它不一定是主键。
作为一个细节问题,SQL中称为FOREIGN KEY的约束并不完全等同于关系模型中外键的教科书定义。 SQL的FOREIGN KEY约束因:
而不同答案 2 :(得分:3)
是的,外键可以是其他表中的唯一键,因为唯一键是主键的子集,但不是确切的主键。
因此外键可能是另一个表中的唯一键。
答案 3 :(得分:0)
一般标准答案是否定的。只有外键在其他表中唯一引用任何列时才有可能。这意味着外键必须是其他表中的候选键,主键也是表的候选键。