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