繁体   English   中英

我无法使此.sql文件在MySQL中成功运行?

[英]I cannot get this .sql file to run successfully in MySQL?

MySQL CMD Client将运行该文件,但无法完成,并抱怨我的语法错误。我整天都在检查并更改了其中的位,但找不到问题。

我再次知道这可能是一个非常容易回答的问题,但是整天看着它之后,又有了新的眼睛来找我。 请帮忙!

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;

谢谢! :)灰。

更新:对不起,我粘贴了错误的代码,这是我正在使用的代码,但存在以下问题:

 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;

我收到4次错误1064(42000),并且它在MATCH,GROUP,(MATCH_ID),(GROUP_ID)上。

这是主键的语法错误吗?

我的猜测:有,在列表的最后一行......像这样的:

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

改成

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

你有四个。

我已经设法解决了这个错误,似乎MATCH和GROUP实际上是MySQL / SQL使用的关键字,不能用作表的名称,我安装了MySQL WorkBench,它将为您加底划线。

同样,要使用外键创建复合键,您首先要创建要放入数据的变量,使用外键语法将数据放入变量中,然后对具有外键变量的复合键使用常规语法到位。

谢谢你们每一个人的帮助!

灰。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM