mysql - 当第一行被“包围”时,MySQL LOAD DATA LOCAL INFILE 什么都不做
问题描述
以下 MySql Query 完全没有任何作用
LOAD DATA
LOCAL INFILE 'path/to/file.csv'
REPLACE INTO
TABLE `db`.`table`
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(
`id`,
`name`
);
CSV 文件如下:
"id","name"
"1","Lorem"
"2","Ipsum"
"3","Dolor"
"4","Sit"
"5","Amet"
"6","consectetur "
"7","adipisci"
"8","velit"
"9","sed"
"10","quia"
我检查了行分隔符是 LF,文件编码是 UTF-8。
我注意到,如果我清空 csv 的第一行,或者删除第一行的双引号,查询实际上会影响 10 行。
你知道为什么会这样吗?因为我宁愿不必编辑第一行。
解决方案
问题在于您的Escaped By '"'
,当第一个 quote(") 遇到时,它被认为是Escape
。只要摆脱它,它就会起作用。
LOAD DATA
LOCAL INFILE 'path\\to\\file.csv'
REPLACE INTO
TABLE `db`.`table`
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(
`id`,
`name`
);
推荐阅读
- android - 找不到接受参数和资源链接失败的视图的设置器
- snowflake-cloud-data-platform - 如何在雪花中实现 NUMBER(Oralce) 数据类型功能?
- java - Project Reactor 条件验证
- php - 基于变量的 Laravel 验证
- python - 在数据框中查找连续日期,按另一列值分组
- css - 如何在 CSS 中设置单选按钮的样式?
- javascript - 如何通过 id 或 class 区分 popover
- json - 尝试使用 firebase 获取我的颤振应用程序的请求并出现错误
- python - 如何在 Python 中以行列表的形式从图像中获取数据
- angular - Firebase将令牌传递给角度参数