【发布时间】:2014-05-22 15:26:09
【问题描述】:
尝试使用外键创建表时出现此错误:
引用表“TeamToPlayers”中没有与外键“FKey2”中的引用列列表匹配的主键或候选键。
不明白为什么,表TeamToPlayers中有一个主键。
这里是查询:
create table TeamToPlayers
(TeamName varchar(50) NOT NULL,
PlayerName varchar(50) NOT NULL,
primary key(TeamName,PlayerName),
CONSTRAINT FKey FOREIGN KEY (TeamName) REFERENCES Teams(TeamName)
)
create table Players
(PlayerName varchar(50) NOT NULL,
primary key(PlayerName),
CONSTRAINT FKey2 FOREIGN KEY (PlayerName) REFERENCES TeamToPlayers(PlayerName)
);
【问题讨论】:
-
你的 FK 关系倒退了。如果你仔细想想,你就会明白为什么会这样。为了让 Players 引用 TeamToPlayers 中的键,它需要引用具有唯一性约束的整个键。但是,如果 TeamToPlayers 中的 Players 引用 Players 中的键,则整个键就是单个属性。
标签: sql database visual-studio-2012