You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL建表语句出现ERROR 1064语法错误,请求排查问题原因

解决MySQL批量建表的1064语法错误问题

你的三条建表语句本身语法是完全正确的,报错的根源并不是SQL语法问题,而是多语句执行的客户端配置或操作方式不对,另外可能存在复制粘贴时混入的多余字符干扰。下面是具体的解决方法:

1. 分开执行单个建表语句

绝大多数MySQL客户端(包括原生命令行)在默认模式下,一次只能解析执行一条SQL语句。你可以把三个CREATE TABLE拆分开,逐个执行:

先执行authors表的语句:

CREATE TABLE `authors` ( `id` INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL ) DEFAULT CHARSET=latin1;

确认执行成功后,再执行categories表的语句:

CREATE TABLE `categories` ( `id` INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `img` TEXT NOT NULL ) DEFAULT CHARSET=latin1;

最后执行reviews表的语句:

CREATE TABLE `reviews` ( `id` INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, `customer_id` INT(10) NOT NULL, `product_id` INT(10) NOT NULL, `grade` ENUM('Wspaniała', 'Dobra', 'Taka sobie', 'Zła', 'Bardzo zła') NOT NULL, `content` TEXT NOT NULL ) DEFAULT CHARSET=latin1;

2. 清理语句中的多余字符

从你的第三条报错信息里能看到- - -这类无关字符,这大概率是你复制语句时不小心带入的,会导致SQL解析器报错。请检查所有建表语句,确保没有多余的注释符号、换行符或其他无关内容,每个语句都以CREATE TABLE开头,以分号结尾。

3. 开启客户端的多语句执行模式(如需批量执行)

如果你想一次性执行所有语句,需要确保客户端支持多语句解析:

  • MySQL命令行:启动时可以加上--enable-multi-statements参数,或者在命令行交互界面中先执行DELIMITER ;(确认分隔符为分号),再粘贴所有语句执行。
  • GUI工具(如phpMyAdmin、Navicat):找到对应的设置选项,比如phpMyAdmin在SQL执行页面有「允许执行多个查询」的复选框,勾选后再提交批量语句;Navicat则可以在执行SQL的窗口中,确保没有限制单语句执行的设置。

内容的提问来源于stack exchange,提问作者ankiedos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 00:03:13