我正在創建一個簡單的數據庫,並且一直遇到此錯誤,ORA-02270:此列列表沒有匹配的唯一或主鍵。我一直試圖解決這個問題超過一天,我不明白我做錯了什麼。我已經看過關於這個錯誤的其他帖子,但不明白我在這裏做錯了什麼。數據庫SQL錯誤: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);
問題在這裏** CONSTRAINT games_pk PRIMARY KEY(game_number,player_id,team)** team_game_stats表不能在遊戲桌上提供一個唯一的主鍵。 –