0

ファンタジー フットボール リーグを表すいくつかのテーブルを作成しようとしています。このリーグ自体にはチームが含まれ、統計を持つ選手である選ばれた選手が含まれています。現在、非常に基本的なドラフトがあり、外部キーを機能させようとしていますが、キーを追加しようとすると、このエラーが発生し続けます。

ERROR 1005 (HY000) at line 19: Can't create table 'football_db.PickedPlayers' (errno: 150)

もちろん、私は少しグーグルで検索しましたが、そのエラーメッセージが示すように、問題はそのテーブルの外部キーに関係しています。

複数の外部キーのセットを追加できませんか? それとも私が選んだ外部キーの種類ですか?前もって感謝します。

CREATE TABLE football_db.Leagues
    (league_id INT NOT NULL,
     league_name VARCHAR(100),
     PRIMARY KEY (league_id))
    ENGINE=INNODB;
CREATE TABLE football_db.Teams
    (league_id INT NOT NULL,
     team_id INT NOT NULL,
     team_name VARCHAR(100),
     PRIMARY KEY (league_id,team_id),
     FOREIGN KEY (league_id) REFERENCES Leagues(league_id))
    ENGINE=INNODB;
CREATE TABLE football_db.PickedPlayers
    (league_id INT NOT NULL,
     team_id INT NOT NULL,
     player_id INT NOT NULL,
     PRIMARY KEY (player_id),
     FOREIGN KEY (league_id,team_id) REFERENCES Teams(league_id,team_id),
     FOREIGN KEY (player_id) REFERENCES Players(player_id))
    ENGINE=INNODB;
CREATE TABLE football_db.Players
    (player_id INT NOT NULL,
     player_name VARCHAR(50),
     position VARCHAR(10),
     is_free_agent BOOL,
     PRIMARY KEY (player_id))
    ENGINE=INNODB;
4

2 に答える 2

0

これを入力していると、自分で問題を見つけました。他の人が同じ(本当に愚かで初心者の)問題に遭遇する可能性があるため、少なくともここに私の解決策を投稿すると考えました。

問題は、PickedPlayers以前にテーブルを作成しPlayersていたため、テーブルがまだ存在していないため、どの外部キーPlayersが参照されているのかわからなかったことです。

于 2013-10-01T16:09:06.007 に答える