使用正确的转义将文件加载到mysql表中

时间:2018-09-24 02:30:00

标签: mysql

我打算将文件(结构如下)加载到mysql表中。

"id","name","city","occupation"
"1","ami","Puchong","Engineer"
"2","sandy","Puchong (Equine Park)","Teacher"
"3","sam","Puchong "Puncak Jalil"","Doctor"

并希望获得如下表结构

|id|name|city|occupation|
|1|ami|Puchong|Engineer|
|2|sandy|Puchong (Equine Park)|Teacher|
|3|sam|Puchong "Puncak Jalil"|Doctor|

我正在使用以下命令加载文件:

  

将文件'/home/kimi/my.txt'中的数据加载到终止的表测试字段中   用','括起,以'''行结尾,以'\ n'忽略1行;

这将适用于ID 1&2,但是我会收到这样的警告消息

  

“第3行不包含所有列的数据”。

我认为第三列中的多余字符引起了这个问题。我想知道从mysql负载参数方面是否有任何方法可以解决这个问题? 否则,可能在加载文件之前会做一些清理工作。

1 个答案:

答案 0 :(得分:1)

您将必须转义要插入的双引号。这可以通过在ESCAPED BY '<char>'之后的命令中添加FIELDS来完成。下面的示例显示了如何将反斜杠设置为转义字符。

...FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\'...

有关更多信息,请参见https://dev.mysql.com/doc/refman/8.0/en/load-data.html