如何忽略“ LOAD DATA LOCAL INFILE”中带有无效utf8字符串的行?

时间:2019-06-28 01:03:16

标签: mysql mysql-5.7

我有一个未经控制的未经消毒的数据源,大小为数百GB,固定宽度的列。当我跑步时

LOAD DATA LOCAL INFILE 
'B:\\path\\data.txt' IGNORE
INTO TABLE `bigtable`
(@row)
SET
field1      = TRIM(SUBSTR(@row,1,12)),
field2      = TRIM(SUBSTR(@row,13,192)),
field3      = TRIM(SUBSTR(@row,205,1)),
90+ more row.....

它不会以Invalid utf8 character string: 'L15000156741CHAMPION FITNESS, LLC的身份导入单个记录

该字符串看起来没有任何问题。没有特殊字符。 ASCII和utf8在此范围内重叠吗?这个LOAD DATA语句可以在MySQL的早期版本中使用,但是在5.7.19版本中它不起作用,这使我望而却步。我不需要保留断行。其他任何答案都无法解决我的情况,包括herehere

有什么方法可以简单地跳过损坏的行吗?也许是我忘记的设置或陈述?我认为IGNORE应该已解决此问题,但仍然无法加载。

0 个答案:

没有答案