我打算将一个文件(结构如下)加载到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'结束IGNORE 1行;


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


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


我想出了在第三列中多余的“引起了这个问题。
否则,可能我会在加载文件之前进行一些清理工作。

最佳答案

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

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

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

10-06 06:40