![](/img/trans.png)
[英]Need assistance SQL error (ORA-02270) : no matching unique or primary key for this column-list error
[英]Database SQL Error: ORA-02270: no matching unique or primary key for this column-list
我正在創建一個簡單的數據庫,並且不斷遇到此錯誤ORA-02270:此列列表沒有匹配的唯一鍵或主鍵。 我已經嘗試解決這個問題超過一天,但我不明白自己在做什么錯。 我看過有關此錯誤的其他帖子,但不了解我在做什么錯。
毫無問題地創建的表是TEAMS,PLAYERS和GAMES表。 當我嘗試創建TEAM_GAME_STATS或PLAYER_GAME_STATS表時,出現此錯誤。 我注意到,如果我從這兩個表中都刪除了外鍵約束,那么創建它們就沒有問題。 但我認為這可能會導致數據問題? 如果有人可以查看我的代碼並告知我可能做錯了什么或向正確的方向指出,我將不勝感激。 我將表簡化為僅主鍵/外鍵,因此沒有過多的代碼。
CREATE TABLE teams (
team VARCHAR2(50),
CONSTRAINT teams_pk PRIMARY KEY (team)
);
CREATE TABLE players (
player_id NUMBER,
team VARCHAR2(50),
CONSTRAINT players_pk PRIMARY KEY (player_id),
CONSTRAINT players_fk_team FOREIGN KEY (team)
REFERENCES teams (team)
);
CREATE TABLE games (
game_number NUMBER,
player_id NUMBER,
team VARCHAR2(50),
CONSTRAINT games_pk PRIMARY KEY (game_number, player_id, team),
CONSTRAINT games_fk_player_id FOREIGN KEY (player_id)
REFERENCES players (player_id),
CONSTRAINT games_fk_team FOREIGN KEY (team)
REFERENCES teams (team)
);
CREATE TABLE team_game_stats (
game_number NUMBER,
team VARCHAR2(50),
CONSTRAINT team_game_stats_pk PRIMARY KEY (game_number, team),
CONSTRAINT team_game_stats_fk_game_number FOREIGN KEY (game_number)
REFERENCES games (game_number),
CONSTRAINT team_game_stats_fk_team FOREIGN KEY (team)
REFERENCES games (team),
);
CREATE TABLE player_game_stats (
game_number NUMBER,
player_id NUMBER,
CONSTRAINT player_game_stats_pk PRIMARY KEY (game_number, player_id),
CONSTRAINT player_game_stats_fk_game_number FOREIGN KEY (game_number)
REFERENCES games (game_number),
CONSTRAINT player_game_stats_fk_player_id FOREIGN KEY (player_id)
REFERENCES games (player_id),
);
CREATE INDEX players_team_idx
ON players (team);
CREATE INDEX games_player_id_idx
ON games (player_id);
CREATE INDEX games_team_idx
ON games (team);
CREATE INDEX team_game_stats_game_number_idx
ON team_game_stats (game_number);
CREATE INDEX team_game_stats_team_idx
ON team_game_stats (team);
CREATE INDEX player_game_stats_game_number_idx
ON player_game_stats (game_number);
CREATE INDEX player_game_stats_player_id_idx
ON player_game_stats (player_id);
外鍵是對另一個表的主鍵的引用。
Oracle SQL:收到“沒有匹配的唯一鍵或主鍵”錯誤,並且不知道為什么
更改
CONSTRAINT games_pk PRIMARY KEY (game_number, player_id, team)
至
CONSTRAINT games_pk PRIMARY KEY (game_number, team)
也改變
CONSTRAINT team_game_stats_fk_game_number FOREIGN KEY (game_number)
REFERENCES games (game_number),
CONSTRAINT team_game_stats_fk_team FOREIGN KEY (team)
REFERENCES games (team),
成為
CONSTRAINT team_game_stats_game_fk FOREIGN KEY (game_number, team)
REFERENCES games (game_number, team)
並執行類似於player_game_stats的操作。
您可能需要弄亂每個表的鍵。 重要的是表中的外鍵應包含與其引用的表的主鍵相同的列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.