Задача
В разных операционных системах используются разные последовательности для обозначения конца строки.
Решение
Именно поэтому в предложении LOAD DATA имеется инструкция LINES TERMINATED BY.
Обсуждение
Как правило, последовательность, задающая конец строки в файле, определяется той системой, в которой файл был создан, а не той, в которой он импортируется. Имейте это в виду, когда загружаете файл, полученный из другой операционной системы.
В UNIX строки обычно заканчиваются символом конца строки, который в предложении LOAD DATA можно задать так:
LINES TERMINATED BY '\n'
Однако благодаря тому что \n используется в LOAD DATA по умолчанию, инструкция LINES TERMINATED BY не обязательна, если только вам не требуется явно указать значение разделителя строк.
Файлы, создаваемые в операционных системах Mac OS или Windows, обычно содержат строки, заканчивающиеся символом возврата каретки или парой CRLF. Для работы с такими разделителями используйте соответствующую инструкцию LINES TERMINATED BY:
LINES TERMINATED BY '\r'
LINES TERMINATED BY '\r\n'
Например, для загрузки файла из Windows, содержащего поля, разделенные табуляциями, и строки, заканчивающиеся парой CRLF, используйте такое предложение LOAD DATA:
mysql> LOAD DATA LOCAL INFILE 'mytbl.txt' INTO TABLE mytbl
-> LINES TERMINATED BY '\r\n';
Соответствующий вызов mysqlimport имеет такой вид:
% mysqlimport --local --lines-terminated-by="\r\n" cookbook mytbl.txt