将数据加载到MySQL:如何处理反斜杠?

6
我从一个知名来源下载了一个制表符分隔的文件,现在想将其上传到MySQL表中。我使用load data local infile来实现此操作。
这个数据文件有超过1000万条记录,同时也不幸包含很多反斜杠。
$ grep '\\' tabd_file.txt | wc -l
223212

除了在字段末尾出现时,这些反斜杠并不是问题。MySQL将反斜杠解释为转义字符,当它在字段末尾出现时,会影响下一个字段,甚至可能影响下一行。
即使有这些反斜杠,我将其加载到表中时仅收到了6个警告。在每个警告中,由于反斜杠连接了同一行中相邻的两个字段,导致一行没有正确数量的列。
我的问题是,如何处理这些反斜杠? 我应该指定load data local infile [...] escaped by '' 来删除它们的任何特殊含义吗? 这样做是否会产生意想不到的后果? 我无法想到这个数据文件中使用转义序列的重要用途。 实际终止字段的制表符是“物理制表符”,而不是“\t”序列。
或者,从我的加载命令中删除转义字符是不好的实践吗? 我应该只用'\\'替换文件中每个实例的'\'吗?
感谢任何建议 :-)
1个回答

19

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接