使用MySQL'处理转义字段分隔符;s加载数据填充
我使用使用MySQL'处理转义字段分隔符;s加载数据填充,mysql,escaping,load-data-infile,Mysql,Escaping,Load Data Infile,我使用LOAD DATA infle将二十个|分隔的.dat文件导入到MySQL表中。但是一些|字段终止符用反斜杠转义。下面的第二个字段是一个示例: 1001604|EMERITUS CORP\WA\|SC 13G|1996-02-13|edgar/data/1001604/0000728757-96-000006.txt 1001604|EMERITUS CORP\WA\|SC 13G|1996-02-14|edgar/data/1001604/0000903949-96-000038.txt
LOAD DATA infle
将二十个|分隔的.dat文件导入到MySQL表中。但是一些|字段终止符用反斜杠转义。下面的第二个字段是一个示例:
1001604|EMERITUS CORP\WA\|SC 13G|1996-02-13|edgar/data/1001604/0000728757-96-000006.txt
1001604|EMERITUS CORP\WA\|SC 13G|1996-02-14|edgar/data/1001604/0000903949-96-000038.txt
我得到一个错误,因为最后一个字段与为倒数第二个字段声明的DATE
类型冲突。我可以打开.dat文件并逃逸,但是有更好的方法吗
我可以使用流编辑器将所有反斜杠加倍,但这似乎是个坏主意。我是否可以安全地将选项转义的字段更改为“\”以外的内容,或者这是一个坏主意?谢谢
这是我的加载数据填充
命令:
LOAD DATA INFILE 'C:/users/richard/research/data/edgar/masterfiles/master_1996.dat'
INTO TABLE edgar.master
FIELDS TERMINATED BY '|'
IGNORE 1 LINES;
将“
转义的添加到myFIELDS
子句中,可以无误地完成查询。如果我发现这导致了静默失败,我将进行更新。将“
转义的添加到我的字段
子句允许查询无误地完成。如果我发现这导致了静默失败,我将进行更新。通过“
转义是一个不错的解决方案,但它有效地禁用了转义,从而干扰了MySQL的内置特殊字符,例如用于插入NULL的\N
。另一种方法是对正在加载的文本进行双重转义,例如,EMERITUS CORP\\WA\\…
通过“
转义是一种很好的解决方案,但它有效地禁用了转义,从而干扰了MySQL的内置特殊字符,例如用于插入NULL的\N
。另一种方法是双重转义正在加载的文本,例如,EMERITUS CORP\\WA\\\…