MariaDB执行建表语句报ERROR 1064 (42000)语法错误如何解决?
MariaDB 建表ERROR 1064 (42000) 报错解决方案
ERROR 1064 (42000) 是MariaDB的通用语法解析错误,触发原因是SQL语句存在解析器无法识别的内容,你遇到的两个报错分别对应两个问题:
- 列名
hotel#包含特殊字符#,SQL默认将#识别为注释起始符,导致后续列定义语法解析断裂,触发第三行附近的语法报错 - 第一行空字符附近报错,大概率是复制SQL语句时携带了不可见的零宽空白字符,被解析器识别为非法字符
修复方法
方案1(更推荐):修改特殊列名
将不符合标识符规范的hotel#改为常规名称(比如hotel_id),修改后语句如下:
create table hotel( hotel_id int(10), hotel_name varchar(20), city varchar(10) );
该方案可以避免后续查询、开发时反复处理特殊字符的额外工作量。
方案2:保留特殊列名,用反引号包裹
如果业务要求必须保留hotel#作为列名,需要用反引号把包含特殊字符的标识符完整包裹,语句如下:
create table hotel( `hotel#` int(10), hotel_name varchar(20), city varchar(10) );
如果修改后仍然提示第一行空字符附近报错,手动重新输入整条SQL语句即可,不要直接从其他文档/网页复制粘贴,避免带入不可见特殊字符。
内容的提问来源于stack exchange,提问作者Tillo
相关产品推荐
相关产品推荐

