我有一个未经控制的未经消毒的数据源,大小为数百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版本中它不起作用,这使我望而却步。我不需要保留断行。其他任何答案都无法解决我的情况,包括here和here。
有什么方法可以简单地跳过损坏的行吗?也许是我忘记的设置或陈述?我认为IGNORE
应该已解决此问题,但仍然无法加载。