MySQL创建Awardprize表报ERROR 1064语法错误无法定位问题求助
MySQL建表语法错误排查结果
你提交的SQL存在2处语法错误,对应两个报错信息,具体问题和修正方案如下:
错误1:单行注释格式不规范
MySQL要求单行注释符--后必须紧跟至少1个空白字符(空格、换行符、制表符均可),你代码中的--table 5没有在--后加空格,会被MySQL识别为非法SQL语句,对应第一条报错提示。
修正方案:将--table 5改为-- table 5即可。错误2:表定义末尾多余逗号
CREATE TABLE语句的字段、约束列表中,最后一项后不允许添加逗号,你代码里最后一个外键约束的末尾多写了逗号,MySQL解析到后续的)时无法匹配语法规则,对应第二条报错提示。
修正方案:删除FOREIGN KEY(personid) REFERENCES person(pid) ON DELETE CASCADE,末尾的逗号。
修正后可正常运行的SQL代码
-- createawardprize -- create awardprize table -- table 5 DROP TABLE IF EXISTS Awardprize; CREATE TABLE Awardprize( awardid CHAR(2) NOT NULL, personid CHAR(4) NOT NULL, winnername VARCHAR(20) NOT NULL, wyear YEAR NOT NULL, PRIMARY KEY (awardid, personid), FOREIGN KEY(awardid) REFERENCES Award(aid) ON DELETE CASCADE, FOREIGN KEY(personid) REFERENCES person(pid) ON DELETE CASCADE );
内容的提问来源于stack exchange,提问作者Anas Munir
相关产品推荐
相关产品推荐

