使用MySQL LOAD DATA加载CSV文件时遭遇SQL语法错误求助
解决LOAD DATA LOCAL INFILE语法错误问题
针对你遇到的1064语法错误,核心问题出在文件名未加引号和换行符的命令行写法上,下面是具体修正方案:
给文件名添加引号:MySQL要求
LOCAL INFILE后的文件路径/名称必须用单引号或双引号包裹,修正后的语句开头应为:LOAD DATA LOCAL INFILE 'client_report.csv' INTO TABLE client_report修正换行符的写法:在MySQL命令行中,直接输入换行符会被识别为语句中断,无法正确解析。需用转义字符表示换行:
- 类Unix/Linux/macOS环境:用
'\n'作为行终止符 - Windows环境:用
'\r\n'作为行终止符
- 类Unix/Linux/macOS环境:用
完整修正后的示例语句(类Unix环境):
LOAD DATA LOCAL INFILE 'client_report.csv' INTO TABLE client_report FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES;
额外注意事项:
- 如果CSV文件不在MySQL客户端的当前工作目录下,必须填写绝对路径,比如
'/opt/data/client_report.csv' - 执行前可以先用小体积的测试CSV验证语法正确性,避免大文件加载失败浪费时间
内容的提问来源于stack exchange,提问作者Carmageddon
相关产品推荐
相关产品推荐

