Я собираюсь импортировать большой (500 МБ) *. CSV-файл в базу данных MySQL.LOAD DATA INFILE (* .csv) - игнорировать пустые ячейки
Я так далеко, как:
LOAD DATA INFILE '<file>'
REPLACE
INTO TABLE <table-name>
FIELDS
TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"'
IGNORE 1 LINES (#Header
<column-name1>,
<column-name2>,
...
);
У меня есть проблема с одним из coluns (это тип данных INT) - я получаю сообщение об ошибке: Код
Ошибка : 1366 Неправильное целочисленное значение: '' для столбца в строке
Я просмотрел эту строку в * .csv-файле. Ячейка, вызывающая ошибку, имеет только пробел внутри (например: ...;; ...).
Как я могу сказать SQL игнорировать пробелы в этом столбце?
Поскольку файл * .csv очень большой, и мне нужно импортировать еще большие, я бы хотел избежать редактирования * .csv-файла; Я ищу SQL-решение.
Спасибо!
[EDIT] решение:
LOAD DATA INFILE '<file>'
REPLACE
INTO TABLE <table-name>
FIELDS
TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"'
IGNORE 1 LINES (#Header
<column-name1>,
<column-name2>,
@var1 #the variable that causes the problem
...
)
SET <column-name-of-problematic-column> = CASE
WHEN @var1 = ' ' THEN NULL
ELSE @var1
END
;
спасибо! это сработало! Я видел эту часть в руководстве, но я просто мог понять это с вашим объяснением – speendo