游戏数据库双外键



创建一个表,并且不能创建外键,因为外键需要引用唯一值 - 据我所知。但是在phpmyadmin上,您可以在索引中插入一行,然后将其作为外键引用。

我当前正在使用 SQL Server Management Studio,无法引用外键。

我的桌子是

create table gameEvents(
event id int,
eventtext varchar(500),
eventLocation varchar(150),
eventFeedback varchar(300),
choiceOne varchar(100),
choiceTwo varchar(100),
eventDifficulty int,
event Result int
)
Create table gameChoice(
eventDifficulty int,
eventResult int,
ChoiceOneR int,
ChoiceOneV int,
ChoiceTwoR int,
ChoiceTwoV int
)

我正在尝试将事件难度和事件结果(游戏选择(引用到具有相同列名称的游戏事件。

使用的代码

Alter table gameEvents ADD CONSTRAINT FK_difficulty FOREIGN KEY (eventDifficulty) REFERENCES gameChoice(eventDifficulty);

(代码是手动键入的,以防出现语法错误(

收到错误 - 引用的表"gameChoice"中没有与外键"FK_difficulty"中的引用列列表匹配的主键或候选键

我理解错误。但是,除了使用 phpmyadmin 之外,我没有看到任何其他方法可以使这些外键链接......有没有办法在SQL Server Management Studio上制作这些外键

可以在没有主键约束的情况下创建对另一个表的外键引用。但是,为了保持引用完整性,您需要在 GameChoice 表上的"事件难度"列上创建一个唯一的键约束。

您可以尝试以下脚本来更改语句。

Alter table gameChoice ADD CONSTRAINT UK_difficulty UNIQUE (eventDifficulty);
Alter table gameEvents ADD CONSTRAINT FK_difficulty FOREIGN KEY (eventDifficulty) REFERENCES gameChoice(eventDifficulty);

最新更新