0

我遇到的问题与此处描述的基本相同,但该问题仍未解决。

我正在尝试将总计约 1 亿条记录的一系列数据文件导入 MariaDB 数据库。我在导入文件中遇到了一些问题,如下所示:

"GAYATRI INC DBA "WHIPIN"","1950","S I","","AUSTIN","TX","78704","5124425337","B","93"

我试图用如下语句加载:

LOAD DATA INFILE 'testline.txt'
INTO TABLE data
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(@name,@housenum,@street,@aptnum,@city,@state,@zip,@phone,@business,@year)
SET name=@name, housenum=@housenum, street=@street, aptnum=@aptnum, city=@city, state=@state, zip=@zip, phone=@phone, business=@business, year=@year;

但我收到错误,因为第一个字段在该字段的文本中包含未转义的双引号。这本身似乎没问题,因为数据库似乎足够聪明,可以在大多数情况下处理它。但是,由于该字段以文本中的双引号加上一个双引号来关闭该字段,因此它假定第一个双引号正在转义RFC4180之后的第二个双引号,因此即使下一个字符是逗号也不会终止该字段.

源文件不能以任何不同的方式创建,因为它们是从我无法控制的旧软件导出的。显然,像这样手动搜索 1 亿条记录并更改条目是不可行的。我不确定是否有任何字段可能包含逗号,尽管假设它们在这么多的记录中包含逗号可能是安全的,因此以编程方式强制字段以逗号分隔可能也已被淘汰。

关于如何让它们正确导入的任何想法?

4

0 回答 0