簡體   English   中英

添加外鍵約束時遇到問題(錯誤 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,據我所知,這是通知我在外部表中引用的列未列為主鍵約束。 但是,據我所知,我的語法是正確命名 CREATE TABLES 語句中的主鍵的。 我在 all_cons_columns 表中搜索了 player_info 表,它也顯示了列出的主鍵。 我能得到一些指導嗎? 下面列出的是我當前的腳本:

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM