Импорт данных в базу данных MySQL - PullRequest
0 голосов
/ 29 января 2012

Я посмотрел несколько программ, но не нашел решения -

У меня есть база данных в mySQL, которую я хочу заполнить данными из электронной таблицы Excel.

В базе данных есть несколько полей, в которых установлены типы данных, а некоторые поля имеют значение NULL по умолчанию.Все, что мне удалось преобразовать, оставляет поля NULL пустыми, но не NULL.

Используемая мной cPanel допускает только CSV или SQL.Есть идеи, куда идти дальше?

---- ОТВЕТ: ----

Пока все хорошие ответы, но, исследуя еще немного, я нашел этоВидео на YouTube: http://www.youtube.com/watch?v=JDBYU9f1p-I

Я не слышал об этом раньше, но я скачал Talend Open Studio, и хотя количество доступных функций кажется мне слишком большим, для меня это было самым простым иточный способ перемещения файлов Excel в MySql, с которым я когда-либо сталкивался.

Ответы [ 5 ]

2 голосов
/ 29 января 2012

Моя стратегия в некоторых случаях, когда задействовано только несколько строк (<10K) и несколько таблиц (<10), состоит в том, чтобы создавать выражения sql из значений Excel через формулу Excel: </p>

=concat( "Inser into your table (f1, f2) values ("; B1; ", ... )

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

Конечно, ваша формула может содержать значения NULL:

... iif( lengh( B1 ) = 0; NULL; B1 ...
1 голос
/ 29 января 2012

Как вы упоминаете, cPanel позволяет импортировать .csv файлы. К счастью, вы можете экспортировать электронную таблицу как .csv, используя Microsoft Excel.

Вот выдержка из статьи Импорт или экспорт текстовых (.txt или .csv) файлов с веб-сайта Microsoft Office.

Вы можете преобразовать лист Excel в текстовый файл с помощью команды Сохранить как .

1. Нажмите кнопку Microsoft Office , а затем нажмите Сохранить как .

Появится диалоговое окно Сохранить Как * .

2. В поле Сохранить как тип выберите формат текстового файла для рабочего листа.

Например, нажмите Текст (с разделителями табуляции) или CSV (с запятыми) .

1 голос
/ 29 января 2012

Если вы хотите, чтобы пустые поля в столбце 1 таблицы 1 отображались в базу данных на NULL, очевидный вариант - просто импортировать файл, как вы это сделали, и затем сделать

UPDATE table1 SET column1=NULL where column1='';

Может быть утомительно, если мы говорим о многих столбцах многих таблиц, но просто и работает без создания собственного решения.

0 голосов
/ 30 января 2012

Я использовал этот сайт раньше, чтобы создавать операторы вставки. Позволяет легко копировать и вставлять из Excel. Внимательно прочитайте инструкцию.

"Формат, которому вы ДОЛЖНЫ следовать, таков: Первая строка имеет только имя таблицы. Строка 2 - это список имен полей, разделенных табуляцией. Строки 3+ - это строки данных, разделенные табуляцией. "

http://tools.perceptus.ca/text-wiz.php?ops=7

0 голосов
/ 30 января 2012

До сих пор все хорошие ответы, но, изучая еще немного, я нашел это видео на YouTube: http://www.youtube.com/watch?v=JDBYU9f1p-I

Я не слышал об этом раньше, но я скачал Talend Open Studio, и хотя количество доступных функций кажется слишком большим для того, что мне нужно, это был самый прямой и точный способ перемещения файлов Excel в MySql I наткнулся.

...