MySQL中使用LOAD DATA导入单字段分号分隔数据的问题
解决MySQL LOAD DATA导入单字段自增ID数据的问题
一、修正LOAD DATA语法错误
你的核心问题是字段/行分隔符设置错误,以及指定导入字段的语法不正确。针对你的场景(单文本字段+自增ID,记录以分号分隔),正确的命令如下:
LOAD DATA LOCAL INFILE 'C:/Users/owner/OneDrive/Documents/Capstone/References_flat_file.txt' INTO TABLE cites FIELDS TERMINATED BY '' -- 无字段分隔符,整条引用作为单个字段 LINES TERMINATED BY ';' -- 以分号作为每条记录的结束标记 (cite); -- 指定将读取的内容写入cite字段,自增cite_id自动生成
关键参数说明:
FIELDS TERMINATED BY '':因为每条记录是完整的文献引用,不需要拆分字段,所以设置为空字符串,避免MySQL错误拆分内容。LINES TERMINATED BY ';':完全匹配你文件中每条引用末尾的分号,作为记录分隔符。(cite):明确指定导入目标字段,由于cite_id是自增字段,MySQL会自动填充,无需从文件读取数据。
二、解决LOCAL INFILE权限问题
Workbench 8.0存在未修复的LOCAL INFILE权限bug,必须使用MySQL命令行客户端操作,步骤如下:
- 确保服务器配置文件
my.ini的[mysqld]段已添加:
修改后重启MySQL服务。local_infile=ON - 启动命令行客户端时显式启用local_infile:
mysql --local-infile=ON -u 你的用户名 -p - 输入密码进入客户端后,执行上面的LOAD DATA命令即可。
三、验证导入结果
执行导入后,用以下语句检查数据:
SELECT * FROM cites LIMIT 3;
此时应该能看到cite_id自动递增,cite字段正确填充完整的文献引用内容。
内容的提问来源于stack exchange,提问作者Julie Cochrane
相关产品推荐
相关产品推荐

