MySQL Workbench执行建表语句报1064语法错误该如何解决?
MySQL 1064报错排查方案
- 检查语句执行范围
你遇到的Error Code: 1064且提示语法错误位置在near ''(空内容),90%以上的场景是你在MySQL Workbench中执行时没有选中完整的CREATE TABLE语句,只选中了第一行的部分内容就点击了执行按钮,导致提交的SQL不完整触发语法报错。你可以尝试用鼠标全选整个CREATE TABLE代码块后再执行。 - 确认依赖主表存在
外键约束要求关联的主表必须提前创建完成,请先执行下述SQL确认beer表存在且包含类型为INTEGER的beer_id主键字段:
DESC beer;
如果返回Table 'xxx.beer' doesn't exist报错,需要先完成beer表的创建后再执行当前建表语句。
- 优化语法避免歧义
你的表名和字段名重名(表名beer_type,同名字段beer_type),虽然MySQL未强制禁止,但容易触发解析歧义,建议给重名字段加上反引号包裹,修改后的参考语句如下:
CREATE TABLE beer_type ( type_id INTEGER NOT NULL PRIMARY KEY, beer_name VARCHAR(30) NOT NULL, `beer_type` VARCHAR(30) NOT NULL, beer_id INTEGER NOT NULL, FOREIGN KEY (beer_id) REFERENCES beer (beer_id) );
如果执行仍报错,可以尝试删除语句里的行级注释,部分低版本MySQL对注释的解析兼容性较差。
内容的提问来源于stack exchange,提问作者Snare_Dragon
相关产品推荐
相关产品推荐

