SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 31.07.2015 13:21:20

sleep
Участник
Зарегистрирован: 31.07.2015
Сообщений: 1

Непонятный баг с LOAD DATA INFILE инструкцией

Есть следующая проблемная ситуация.
1) Имеем csv файл 1.csv такого вида:
"col1","col2","col3"
"111","333","eee"
"111","333","eee"

Суть в том, что значения последнего столбца должны быть взяты в кавычки.

2) Имеем таблицу:
CREATE TABLE `test`.`colt` (
  `col1` TEXT NULL COMMENT '',
  `col2` TEXT NULL COMMENT '',
  `col3` TEXT NULL COMMENT '');

Выполняем инструкцию
LOAD DATA INFILE 'D:/1.csv' INTO TABLE colt COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\n'    IGNORE 1 LINES

Выпадает исключение:
Error Code: 1262. Row 1 was truncated; it contained more data than there were input columns   
Сочетание кавычка + переход на новую строку похоже воспринимается как некий особый символ

В случае если последнее значение без кавычек, например
"col1","col2",col3
"111","333",eee
"111","333",eee

Все прекрасно работает.
Сейчас мне приходится искусственно добавлять лишний фейковый столбец без кавычек во все файлы. Как это побороть нормально?

Отредактированно sleep (31.07.2015 13:21:40)

Неактивен

 

#2 02.08.2015 11:12:22

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Непонятный баг с LOAD DATA INFILE инструкцией

Попробуйте убрать ESCAPED BY '"' из запроса

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson