2010-11-21 5 views
0

MySQL CMDクライアントはこのファイルを実行しますが、途中で文法が間違っていると不平を言っています。私は一日中見渡してビットを変更しましたが、問題を見つけることはできません。この.sqlファイルをMySQLで正常に実行することができません。

私はもう一度、おそらく非常に簡単に答えられた質問を知っていますが、一日中それを見てから、新鮮な目のために私を探してください。助けてください!

DROP DATABASE FIFAWC2010; 

CREATE DATABASE FIFAWC2010; 

USE FIFAWC2010; 

CREATE TABLE VENUE(
    VENUE_ID CHAR(3), 
    LOC_COORDS VARCHAR(50), 
    CITY VARCHAR(20), 
    VENUE_NAME VARCHAR(20), 
    MAX_CAPACITY NUMERIC(9), 
    PRIMARY KEY(VENUE_ID) 
); 

CREATE TABLE REFEREE(
    REF_ID CHAR(10), 
    REF_FNAME VARCHAR(20), 
    REF_SNAME VARCHAR(20), 
    NATIONALITY VARCHAR(20), 
    PRIMARY KEY(REF_ID) 
); 

CREATE TABLE MATCH(
    MATCH_ID CHAR(11), 
    VENUE_ID CHAR(3), 
    MATCH_DATE DATE, 
    KICK_OFF TIME, 
    FINAL_SCORE VARCHAR(7), 
    REF_ID CHAR(10), 
    VENUE_ATTEN NUMERIC(9), 
    PRIMARY KEY(MATCH_ID,VENUE_ID) REFERENCES VENUE(VENUE_ID), 

); 

CREAT TABLE GROUP(
    GROUP_ID CHAR(1), 
    MATCH_ID VARCHAR(28), 
    PRIMARY KEY(GROUP_ID), 

); 

CREATE TABLE COUNTRY(
    COUNTRY_ID VARCHAR(20), 
    GROUP_ID CHAR(1), 
    PRIMARY KEY(COUNTRY_ID), 

); 

CREATE TABLE PLAYER(
    PLAYER_ID CHAR(10), 
    PLAYER_FNAME VARCHAR(20), 
    PLAYER_SNAME VARCHAR(20), 
    POSITION VARCHAR(10), 
    MATCH_ID CHAR(11), 
    COUNRTY_ID VARCHAR(20), 
    PRIMARY KEY(PLAYER_ID), 

); 

COMMIT; 

ありがとうございます! :)アッシュ。

UPDATE:私は間違ったコードを貼り付け 申し訳ありませんが、これは私が使用して問題を抱えていたコードは次のとおりです。

DROP DATABASE FIFAWC2010; 

    CREATE DATABASE FIFAWC2010; 

    USE FIFAWC2010; 

    CREATE TABLE VENUE(
     VENUE_ID CHAR(3), 
     LOC_COORDS VARCHAR(50), 
     CITY VARCHAR(20), 
     VENUE_NAME VARCHAR(20), 
     MAX_CAPACITY NUMERIC(9), 
     PRIMARY KEY(VENUE_ID) 
    ); 

    CREATE TABLE REFEREE(
     REF_ID CHAR(10), 
     REF_FNAME VARCHAR(20), 
     REF_SNAME VARCHAR(20), 
     NATIONALITY VARCHAR(20), 
     PRIMARY KEY(REF_ID) 
    ); 

    CREATE TABLE MATCH(
     MATCH_ID CHAR(11), 
     VENUE_ID CHAR(3), 
     MATCH_DATE DATE, 
     KICK_OFF TIME, 
     FINAL_SCORE VARCHAR(7), 
     REF_ID CHAR(10), 
     VENUE_ATTEN NUMERIC(9), 
     PRIMARY KEY(MATCH_ID,VENUE_ID) REFERENCES VENUE(VENUE_ID), 
     FOREIGN KEY(REF_ID) REFERENCES REFEREE(REF_ID) 
    ); 

    CREAT TABLE GROUP(
     GROUP_ID CHAR(1), 
     MATCH_ID VARCHAR(28), 
     PRIMARY KEY(GROUP_ID), 
     FOREIGN KEY(MATCH_ID) REFERENCES MATCH(MATCH_ID) 
    ); 

    CREATE TABLE COUNTRY(
     COUNTRY_ID VARCHAR(20), 
     GROUP_ID CHAR(1), 
     PRIMARY KEY(COUNTRY_ID), 
     FOREIGN KEY(GROUP_ID) REFERENCES GROUP(GROUP_ID) 
    ); 

    CREATE TABLE PLAYER(
     PLAYER_ID CHAR(10), 
     PLAYER_FNAME VARCHAR(20), 
     PLAYER_SNAME VARCHAR(20), 
     POSITION VARCHAR(10), 
     MATCH_ID CHAR(11), 
     COUNRTY_ID VARCHAR(20), 
     PRIMARY KEY(PLAYER_ID), 
     FOREIGN KEY(COUNTRY_ID) REFERENCES COUNTRY(COUNTRY_ID), 
     FOREIGN KEY(MATCH_ID) REFERENCES MATCH(MATCH_ID) 
    ); 

    COMMIT; 

は私が取得エラー1064(42000)4回、及びそのMATCHに、 GROUP、(MATCH_ID)、(GROUP_ID)。

これは主キーの構文エラーですか?

+2

エラーは...ですか? –

+1

エラーが発生した行はどの行ですか? – Hogan

+0

ステートメントを1つずつ試してみましたが、この方法で問題を正確にローカライズしてみましたか? –

答えて

5

私の推測:この1のように...リストの最後の行に,を持つ:あなたがそれらの4を持っている

PRIMARY KEY(MATCH_ID,VENUE_ID) REFERENCES VENUE(VENUE_ID) 

PRIMARY KEY(MATCH_ID,VENUE_ID) REFERENCES VENUE(VENUE_ID), 

変更。

+0

+1:しかし、おそらく2つの列が両方とも同じ外部キー列を参照することは意図していません。 –

+0

@OMG - 私は同意します。私は論理エラーではなく構文エラーを探していました。 – Hogan

+0

OMG - どういう意味ですか?私はどこで同じ名前を使用しましたか?例えばFOREIGN KEY(GROUP_ID)REFERENCES GROUP(GROUP_ID)? – Ash

0

私は自分自身を修正することができましたが、MATCHとGROUPは実際にMySQL/SQLが使用するキーワードであり、私のテーブルの名前として使用することはできません。MySQL WorkBenchをインストールしました。君は。

また、外部キーを使用して複合キーを作成するには、まずデータを格納する変数を作成し、外部キー構文を使用して変数にデータを取得し、次に通常の構文を使用しますその場所にある外部キー変数

ご協力いただきありがとうございます。

灰。

関連する問題