Какой самый простой способ импортировать новую таблицу в MySQL v5 из CSV?

StackOverflow https://stackoverflow.com/questions/156994

  •  03-07-2019
  •  | 
  •  

Вопрос

Я использую MySQL 5 на Linux-сервере в своей локальной сети.Запускаю Windows XP на рабочем столе.Взглянул на Инструменты графического интерфейса MySQL но я не думаю, что они помогут.Я не могу установить Apache на удаленном сервере и использовать что-то вроде PHPmyAdmin.

Это было полезно?

Решение

я использую SQLyog в моей системе Windows, которая имеет бесплатную версию Community Edition и возможность импорта из CSV.

Я сам никогда не пользовался этой опцией, поэтому не могу сказать, насколько она хороша.Однако SQLyog отлично подходит для всех остальных задач, для которых я его использовал.

Другие советы

посмотрите @load data infile: http://dev.mysql.com/doc/refman/5.0/en/load-data.html

Из оболочки MySQL или браузера запросов...

Если CSV не имеет заголовка:

LOAD DATA INFILE 'mycsvfile.csv' INTO TABLE mytable;

Если CSV имеет заголовок:

LOAD DATA INFILE 'mycsvfile.csv' INTO TABLE mytable IGNORE 1 LINES;

Я бы использовал редактор электронных таблиц для создания набора операторов SQL.Поместите новый столбец в начало и добавьте insert into tablename values(' .Добавьте другие столбцы, чтобы разделить данные с помощью кода типа '','.Завершить с ''); .Используйте функцию автозаполнения, чтобы перетащить эти ячейки вниз до необходимого количества строк.Скопируйте весь лист в текстовый редактор и удалите лишние табуляции, оставив простой набор операторов вставки.

Это решение, которое я могу использовать для любой системы баз данных и любого формата файлов электронных таблиц.Кроме того, таблицу легко заполнить из таких источников, как другие базы данных, или скопировать и вставить с веб-страницы.Это также довольно быстро и доступно с любого настольного компьютера, используя Excel, OpenOffice или Google Docs.

См. мой пример таблицы в Эксель и OpenOffice версии.

Я просто сделал это, используя LOAD DATA INFILE но стоит отметить, что это не так просто, как в примере с Гаретом (Кай совершенно прав, что вам стоит посмотреть документация).Чтобы правильно импортировать значения, разделенные запятыми, я использовал это:

LOAD DATA LOCAL INFILE 'mycsvfile.csv' INTO TABLE mytable 
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

Предполагается, что файл CSV заключен в кавычки вокруг каждого поля и имеет одну строку заголовка вверху.(Вам, вероятно, не нужен LINES TERMINATED BY так как это должно быть значение по умолчанию, но рекомендуется указывать явно.)

Приложение Toad творит чудеса и является бесплатным.Если у вас есть подходящий файл CSV, он создаст таблицу и импортирует все данные за вас.

Напишите простой скрипт Python, который анализирует CSV и вставляет его в таблицу.

Посмотрите на csv и MySQLDB модуль.

Если вы не против использовать немного коммерческого программного обеспечения, тогда Navicat (http://mysql.navicat.com/) — очень полезное программное обеспечение, доступное для Mac, Windows и Linux.Я регулярно использую его для импорта большого файла CSV в базу данных.

Жаба для MySQL сделает это хорошо, со значительным контролем над импортом (например, выборочное сопоставление столбцов) и, что наиболее важно, бесплатно.

Я также использовал SQLYog, но для этого вам потребуется коммерческая версия, поскольку импорт из файла недоступен в версии для сообщества.

Toad — отличное программное обеспечение, которое поставляется в версиях для всех основных баз данных, и в прошлом я также использовал версии MSSQL и Oracle.Рекомендуемые.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top