Импортировать CSV в MySQL

Я создал базу данных и таблицу. Я также создал все поля, которые мне понадобятся. Я создал 46 полей, в том числе одно, которое является моим идентификатором для строки. CSV не содержит ни поля идентификатора, ни заголовков столбцов. Я новичок во всем этом, но пытаюсь понять это. Я здесь не ленив и спрашиваю ответ, а ищу дорогу.

Я пытаюсь понять, как импортировать CSV, но чтобы он начал импортировать данные, начиная со второго поля, так как я надеюсь, что auto_increment заполнит поле идентификатора, которое является первым полем, которое я создал.

Я попробовал эти инструкции безуспешно. Может ли кто-нибудь подсказать?

  1. Имена столбцов вашего CSV-файла должны совпадать с именами столбцов в вашей таблице.
  2. Перейдите к необходимому файлу .csv.
  3. Выберите CSV с помощью параметров ЗАГРУЗИТЬ ДАННЫЕ
  4. Установите флажок "ВКЛ" для Заменить данные таблицы файлом
  5. В поле Поля, завершаемые введите ,
  6. В поле Поля, заключенные, "
  7. В поле Поля, экранированные, \
  8. В поле Строки, заканчивающиеся, auto
  9. В поле Имена столбцов введите имя столбца, разделенное знаком ,, например column1,column2,column3
  10. Установите флажок для Использовать ЛОКАЛЬНОЕ ключевое слово.

Редактировать:

Размер файла CSV - 32,4 КБ.

Первая строка моего CSV:

Test Advertiser,23906032166,119938,287898,,585639051,287898 - Engager - 300x250,88793551,Running,295046551,301624551,2/1/2010,8/2/2010,Active,,Guaranteed,Publisher test,Maintainer test,example-site.com,,All,All,,Interest: Dental; custom geo zones: City,300x250,-,CPM,$37.49 ,"4,415","3,246",3,0,$165.52 ,$121.69 ,"2,895",805,0,0,$30.18 ,$37.49 ,0,$0.00 ,IMPRESSIONBASED,NA,USD

person 404error    schedule 11.06.2010    source источник
comment
Вы пробовали использовать PHPMyAdmin?   -  person Kerry Jones    schedule 11.06.2010
comment
@Kerry: Он перечисляет инструкции phpMyAdmin, так что я бы сказал да.   -  person Ignacio Vazquez-Abrams    schedule 11.06.2010
comment
Спасибо за ответ, инструкции, которые я опубликовал, - это то, что я использовал в phpMyAdmin, но моя информация сбрасывается. Я где-то читал, что лучший способ сделать это - сделать так, чтобы заголовки столбцов в csv отражали поля в моей таблице. это правильно?   -  person 404error    schedule 11.06.2010


Ответы (3)


Вы можете настроить MySQL для определенных столбцов во время импорта. Если ваше поле id настроено на автоматическое приращение, вы можете установить для него значение null во время импорта, и MySQL затем назначит ему увеличивающиеся значения. Попробуйте поместить что-то вроде этого на вкладке SQL в phpMyAdmin:

LOAD DATA INFILE 'path/to/file.csv' INTO TABLE your_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' SET id=null;
person webbiedave    schedule 11.06.2010

Пожалуйста, посмотрите на эту страницу и посмотрите, есть ли на ней то, что вы ищете. Должно быть все, что вам нужно, так как вы имеете дело только с одной таблицей. ИНФАЙЛ ЗАГРУЗКИ ДАННЫХ MYSQL

Так, например, вы можете сделать что-то вроде этого:

LOAD DATA INFILE 'filepath' INTO TABLE 'tablename' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (column2, column3, column4);

Это должно дать вам представление. Конечно, есть и другие варианты, которые можно добавить, как показано в приведенной выше ссылке.

person Kavet Kerek    schedule 11.06.2010
comment
Спасибо, я попробую и посмотрю, смогу ли я это понять. Очень признателен. - person 404error; 12.06.2010

обязательно используйте LOAD DATA LOCAL INFILE, если файл импорта является локальным. :)

person paiego    schedule 20.06.2013
comment
Нет, если файл уже локальный. Использование LOCAL может вызвать другие проблемы, например ОШИБКА 1148 (42000): используемая команда не разрешена в этой версии MySQL, что не обязательно означает несовместимость версии MySQL обсуждение этого вопроса. Использование LOCAL может потребовать проверки дополнительных настроек, например на стороне клиента и сервера флаг: local-infile. Для меня это все еще не сработало. - person Katarzyna; 15.04.2015