Я не могу заставить этот файл .sql успешно работать в MySQL? - PullRequest
0 голосов
/ 21 ноября 2010

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;

Спасибо!:) Ash.

ОБНОВЛЕНИЕ: Извините, я вставил неправильный код, это код, который я использую, и возникают проблемы с:

 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 ]

5 голосов
/ 21 ноября 2010

Мое предположение: наличие , в последней строке списка ... как этот:

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

изменить на

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

у вас их 4.

0 голосов
/ 21 ноября 2010

Мне удалось исправить ошибку самостоятельно. Казалось бы, MATCH и GROUP на самом деле являются ключевыми словами, которые использует MySQL / SQL и не могут использоваться в качестве имен моих таблиц, я установил MySQL WorkBench, и он подчеркнет ошибки для вас ,

Кроме того, чтобы создать составной ключ с внешним ключом, сначала необходимо создать переменную для данных, которые используются, использовать синтаксис внешнего ключа для получения данных в переменную, а затем использовать обычный синтаксис для составного ключа с Переменная внешнего ключа на месте.

Спасибо всем за помощь!

Ash.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...