mysql - mysql LOAD DATA LOCAL INFILE 合并行
问题描述
我正在使用 LOAD DATA LOCAL INFILE 语法将服务器上的文件中的 csv 文件加载到数据库中。它有效,问题是,有些行合并在一起,就像没有任何新的行分隔符一样。但是当我检查问题所在的特定行时,我看到文件中有分隔符。可能是什么问题呢?
LOAD DATA LOCAL INFILE 'words.tsv'
INTO TABLE `words`
CHARACTER SET `utf8mb4`
FIELDS TERMINATED BY '\t' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(id, lang, text);
数据类似于 ID、语言、文本,由 \t 分隔(因为文件名为 tsv)。
如果我只尝试 \r 作为换行符,它只导入 1 行,如果 \r\n 也只有 1 行。如果 \n 多行但有些错误。文件是 utf8,我使用:
SET NAMES utfmb4;
在运行导入以支持表情符号之前。我不知道它是否相关。
123 eng Hello world
124 eng Bla bla bla
它导入一些行,例如:
id: 123
text: eng Hello world 124 eng Bla bla bla
解决方案
所以我看到问题是包含'"'的特定行和命令包含的部分
ENCLOSED BY '"'
但实际上这些行没有用 " 括起来,所以我不得不从命令中删除这部分并且它可以工作。
推荐阅读
- javascript - Javascript 框架无法正常工作与 jsfiddle 相同的代码?
- python - 一旦我训练了用于文本分类的 keras 模型,有什么方法可以知道特征的重要性?
- huawei-mobile-services - 在华为设备上运行我的游戏时收到错误返回码 7005
- p5.js - 在 for/in 语句中执行对象数组元素的方法时出错。p5.js
- reactjs - React Hook useEffect 缺少将 redux 操作作为参数的依赖项
- bash - SSH进入多台机器并运行多个命令
- node.js - Newman 在 Windows 10 上的 Jenkins 中未被识别为内部或外部命令
- c++ - 在 C++ 堆栈上推送 Int 时出现分段错误
- go - 如何在源目录之外构建?
- c++ - 构造函数初始化列表与构造函数主体