Бывает, что необходимо быстро, например из консоли, выполнить импорт файла CSV (сохраненного из Excel) в таблицу MySQL.
Как в MySQL можно импортировать данные из CSV файла?
Существует команда LOAD DATA INFILE
.
LOAD DATA INFILE '/tmp/artkiev.csv'
INTO TABLE `log_data`
FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\'
LINES STARTING BY '' TERMINATED BY '\n'
IGNORE 1 LINES;
Конструкция FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\'
говорит о том, что каждое поля в файле будут разделены знаком ;
и каждое поле будет обернуто в знак "
и если внутри поля попадется аналогичный знак (кавычка), она будет экранирована (ESCAPED BY).
Конструкция LINES STARTING BY '' TERMINATED BY '\n'
сообщает о том, что каждая строка начинается с указанного значения в LINES STARTING BY, а заканчивается строка значением в TERMINATED BY.
Конструкция IGNORE num LINES
не обязательна и используется только тогда, когда необходимо пропустить при импорте определенные строки в файле. Например ваш файл содержит заглавие столбцов, тогда пишем IGNORE 1 LINES и парсер пропустит первую строку.