Я хотел бы импортировать данные CSV в базу данных MySQL, ниже приведен пример данных строки моего CSV-файла:
"9C5435D89FCA5E19E0532107A8C074BD","12341234","20180411 163616","ABC","12341234;Testing data.
TestingData.","1"
Как видно, в столбце 5 есть разрыв строки (Unix EOL , то есть LF), когда я импортирую его, я получаю ERROR 1261 (01000): Row 2 doesn't contain data for all columns
Ниже мой LOAD DATA INFILE
LOAD DATA INFILE '/opt/mysql/files/table.csv'
INTO TABLE table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(@uuid,col2,@date,col4,col5,col6)
SET col1= UUID_TO_BIN(@uuid),col4 = STR_TO_DATE(@date, '%Y%c%d %H%i%s');
Я пытался установить LINES TERMINATED BY '\r\n'
, но получаю еще одну ошибку ERROR 1406 (22001): Data too long for column 'col6' at row 1
Я уже указал ENCLOSED BY '"'
, разве это не должно предотвратить проблему, с которой я сейчас сталкиваюсь? Несмотря на то, что есть разрыв строки, но он все еще заключен в ""
, MySQL должен отображать это как данные столбца вместо новой строки данных, не так ли?
Есть ли способ решить это? Я не могу изменить данные в формате CSV, так как они предназначены для разрыва строки. table.csv
экспортируется из Oracle DB с помощью команды spool
.