使用MySQL的LOAD DATA INFILE处理转义字段分隔符

时间:2012-09-12 18:35:45

标签: mysql escaping load-data-infile

我正在使用LOAD DATA INFILE将二十个-delimited .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文件并逃脱转义,但是有更好的方法吗?

我可以使用流编辑器将所有反斜杠加倍,但这似乎是一个坏主意。我可以安全地将FIELDS ESCAPED BY选项更改为“\”之外的其他选项,还是一个坏主意?谢谢!

这是我的LOAD DATA INFILE命令:

LOAD DATA INFILE 'C:/users/richard/research/data/edgar/masterfiles/master_1996.dat'
    INTO TABLE edgar.master
    FIELDS TERMINATED BY '|'
    IGNORE 1 LINES;

1 个答案:

答案 0 :(得分:4)

ESCAPED BY ''添加到我的FIELDS子句允许查询完成而不会出错。如果我发现这导致了无声的失败,我会更新。