我有一个包含3列'Player1','Player2'和'Winner'的表格。我希望'Winner'列引用'Player1'或'Player2'列。除了'Player1'或'Player2'的条目之外,不应该插入任何其他内容。我用
试了一下ALTER TABLE GAMES
ADD CONSTRAINT fk_winner FOREIGN KEY (WINNER) REFERENCES GAMES (PLAYER1, PLAYER2);
但我收到了错误。
答案 0 :(得分:2)
不幸的是,你无法创建这样的外键。如果要在数据库中强制执行此操作,则需要使用触发器。
答案 1 :(得分:0)
只需添加一个约束:
ALTER TABLE GAMES
ADD CHECK (WINNER = PLAYER1 OR WINNER = PLAYER2);
答案 2 :(得分:0)
为什么不做一个拥有所有独特球员的第二桌球员。然后在GAMES中你可以用Player1和Player2索引到那个表。然后,获胜者中的所有3列都可以具有合理的外键约束。
答案 3 :(得分:0)
引用列和引用列的数量不匹配。您当然可以在表格中引用两列。但请参阅两列两列。