无法添加外键约束(错误 ORA-02270:此列列表没有匹配的唯一键或主键)

Trouble adding Foreign Key Constraint (error ORA-02270: no matching unique or primary key for this column-list)

我正在学习如何为 class 创建一个带有主键和外键限制的小型简单数据库。我在尝试 运行 我的 ALTER TABLE 语句时收到 ORA-02770,据我了解,这通知我我在外部引用的列 table 未列为主要列关键约束。但是,据我所知,在我的 CREATE TABLES 语句中命名主键的语法是正确的。我在 all_cons_columns table 中搜索了 player_info table,它也显示了列出的主键。我能得到一些指导吗?下面列出的是我当前的脚本:

CREATE TABLE Player_Game
( school varchar2(30),
  player_number number(2,0),
  game_number number(1,0), 

  CONSTRAINT playergame_pk PRIMARY KEY (school, player_number,game_number)
);

CREATE TABLE School 
( school varchar2(30), 
  city varchar2(30), 
  coach varchar2(30), 
  team_name varchar2(30),
  win_record number (2,0), 
  loss_record number (2,0), 

  CONSTRAINT school_pk PRIMARY KEY (school)
);

CREATE TABLE Game 
( school varchar2(30),
  game_number number(1,0), 
  game_date DATE, 
  game_score varchar2(15), 

  CONSTRAINT game_pk PRIMARY KEY (school, game_number)
);

CREATE TABLE player_info
( school varchar2(30), 
  player_number number(2,0), 
  player_name varchar2(25), 

 CONSTRAINT playerinfo_pk PRIMARY KEY (school, player_number)
);

CREATE TABLE city 
( city varchar2(30),
  population number(5,0),

 CONSTRAINT city_pk PRIMARY KEY (city)
);

/*Here is the failing alter command */
ALTER TABLE Player_Game
ADD CONSTRAINT playergame_fk FOREIGN KEY (school) REFERENCES game(school); 

您在 alter table 语句的 playergame_fk 中的列列表不正确。外键 的列列表 必须与其引用的主键的 列列表完全匹配

主键列列表是 school, game_number,因此,您的外键必须具有相同的列:

ALTER TABLE Player_Game
ADD CONSTRAINT playergame_fk FOREIGN KEY (school, game_number) 
  REFERENCES game(school, game_number);