简体   繁体   English

从另一个表引用FK

[英]Referencing FK from another table

Everything in theory looks right in my code, however I keep getting an error: 理论上的一切在我的代码中看起来都正确,但是我不断遇到错误:

There are no primary or candidate keys in the referenced table 'GAMEPERIOD' that match the referencing column list in the foreign key 'PLAYS_FK_PERIOD' 在参考表“ GAMEPERIOD”中没有与外键“ PLAYS_FK_PERIOD”中的参考列列表匹配的主键或候选键

Here is my code: 这是我的代码:

Table I'm trying to reference: 我要参考的表:

CREATE TABLE GAMEPERIOD(
GAMENUMBER VARCHAR(10),
PERIODNUMBER CHAR(1),
HSCORE VARCHAR(3),
LSCORE VARCHAR(3),
CONSTRAINT PERIOD_PK2 PRIMARY KEY (GAMENUMBER, PERIODNUMBER),
CONSTRAINT PERIOD_FK_GAME2 FOREIGN KEY (GAMENUMBER) REFERENCES GAME(GAMEID)
);

Table I'm trying to create: 我要创建的表:

CREATE TABLE PLAYS(
PERSONID CHAR(10) REFERENCES PLAYER,
GAMENUMBER VARCHAR(10),
PERIODNUMBER CHAR(1),
POINTS INTEGER,
MINUTESPLAYED NUMERIC(3,2),
FTA SMALLINT,
FTM SMALLINT,
FGA SMALLINT,
FGM SMALLINT,
TPA SMALLINT,
TPM SMALLINT,
TR SMALLINT,
OFFREB SMALLINT,
ASSISTS SMALLINT,
TURNOVERS SMALLINT,
STEALS SMALLINT,
BLOCKS SMALLINT,
PF SMALLINT,
CONSTRAINT PLAYS_PK PRIMARY KEY (PERSONID,GAMENUMBER,PERIODNUMBER),
CONSTRAINT PLAYS_POINTS CHECK (POINTS=(FTM+FGM*2+3*TPM)),
CONSTRAINT PLAYS_FK_PERIOD FOREIGN KEY (PERIODNUMBER, GAMENUMBER) REFERENCES GAMEPERIOD(PERIODNUMBER, GAMENUMBER)
);

You are mismatched on how you are accessing and defining your foreign keys. 您在访问和定义外键的方式上不匹配。 Your variables you need to flip flop (periodNumber, gameNumber), to (gameNumber, periodNumber) 您需要将触发器(periodNumber,gameNumber)转换为(gameNumber,periodNumber)的变量

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM