[英]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.