我打算将文件(结构如下)加载到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负载参数方面是否有任何方法可以解决这个问题? 否则,可能在加载文件之前会做一些清理工作。
答案 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。