LOAD DATA INFILE вставлена ​​только 1 запись

У меня есть файл csv, который я пытаюсь импортировать через командную строку. Но вставляется только 1 строка. Это значения, разделенные запятыми. Я на Mac с Excel Mac. Я сохраняю как файл csv. Как я могу узнать, заканчиваются ли строки \r или \n или обоими? Вот код, который я использовал:

LOAD DATA LOCAL INFILE '/Users/eric/Documents/contacts_test.csv' INTO TABLE `contacts_tmp` FIELDS TERMINATED BY ',' ESCAPED BY '\\' LINES TERMINATED BY '\n' (clientid,contactid,title,fname,mname,lname,suffixname,salutation,occupation,employer,home_addr1,home_addr2,home_city,home_state,home_zip,home_county,primary_addr1,primary_addr2,primary_city,primary_state,primary_zip,primary_county,work_addr1,work_addr2,work_city,work_state,work_zip,work_county,email,phone_home,phone_mobile,phone_work,fax,phone_other,codes);

Благодарность


person EricP    schedule 07.02.2010    source источник
comment
Команда как таковая не имеет никаких проблем. Вы проверяли команду в Windows или Linux?   -  person Sandeep    schedule 07.02.2010


Ответы (5)


Я бы просто рекомендовал попробовать ту же команду с... LINES TERMINATED BY '\r\n'... и посмотреть, повезет ли вам больше.

person hhunter    schedule 07.02.2010
comment
В настоящее время текстовые файлы Mac обычно заканчиваются на «\n». Приложение более старого класса может по-прежнему использовать '\r', но в наши дни это довольно редко. - person wadesworld; 07.02.2010
comment
это не работает, я использовал этот контент в csv sodocumentation.net/mysql/topic/2356 /load-data-infile - person Anoop P S; 31.12.2020

Была такая же проблема, LINES TERMINATED BY '\r' сделал работу.

person Mauro    schedule 19.11.2013

Если в вашем файле строка заканчивается ,, то вам следует добавить LINES TERMINATED BY ',\r\n'.

Это решит вашу проблему, как и мою.

person abdelali    schedule 16.05.2012

Текстовые файлы Mac обычно заканчиваются на \r, но вы можете узнать это, используя шестнадцатеричный редактор и посмотрев, чем заканчиваются строки.

person Alex Budovski    schedule 07.02.2010
comment
'\n' более распространен в наши дни. См. комментарий выше. - person wadesworld; 07.02.2010
comment
Спасибо! Столкнулся с той же проблемой, и этот решил проблему! - person datasn.io; 07.02.2012
comment
Я где-то читал, что в Mac OS 9 или старше используется '\ r'. Mac OS X использует '\n'. - person Maurice Lam; 16.05.2012

Просто попробуйте полностью удалить LINES TERMINATED BY '\n' из запроса.

Если вы не укажете разделитель, MySQL заполнит его автоматически.

person Brian    schedule 08.02.2010
comment
Если вы не укажете предложения FIELDS или LINES, значения по умолчанию будут такими же, как если бы вы написали это: FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' - --- это то, что говорит документация mySQL. - person Maurice Lam; 16.05.2012