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

oxalkeyp  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(254)

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

我正在使用下面的命令加载文件:
将数据infile“/home/kimi/my.txt”加载到以“,”结尾的表测试字段中,以“,”括起来,以“\n”结尾的行忽略1行;
这将适用于id 1和2,但我得到这样的警告消息
“行3不包含所有列的数据”。
我想是第3栏的“多余”导致了这个问题。我想知道mysql加载参数方面是否有什么方法可以解决这个问题?否则,我可能会在加载文件之前做一些清理工作。

wqsoz72f

wqsoz72f1#

您必须对要插入的双引号进行转义。这可以通过添加 ESCAPED BY '<char>' 到后面的命令 FIELDS . 下面的示例演示如何将反斜杠设置为转义字符。 ...FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\'... 看到了吗https://dev.mysql.com/doc/refman/8.0/en/load-data.html 更多信息。

相关问题