создание таблиц базы данных из данных текстового файла - PullRequest
1 голос
/ 21 января 2011

У меня есть текстовые файлы, сгенерированные из другого программного обеспечения о генах в организме человека, мне нужно вставить их в таблицу и составить таблицу, как мне нужно, у меня есть 15 различных текстовых файлов, которые входят в одну таблицу, как 15 различных столбцов.

GFER = 3.58982863
BPIL1 = 3.58982863
BTBD1 = 4.51464898
BTBD2 = 4.40934218
RPLP1 = 3.57462687
PDHA1 = 4.19320066
LRRC7 = 4.50967385
HIGD1A = 4.46876727

выше показаны данные в текстовом файле, название гена и расстояния.Мне нужно включить это в таблицу, имя гена в отдельном столбце и расстояние в отдельном столбце, этот текстовый файл имеет 3500 строк, и у меня есть 14 текстовых файлов данных, как я могу ввести эти данные в таблицу без ручной вставки?любое автоматизированное программное обеспечение или инструмент, который вы знаете?Пожалуйста, помогите мне!

С уважением, Рангана

Ответы [ 5 ]

3 голосов
/ 21 января 2011

Команда mysqlimport должна загружать ее напрямую, http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html, если вы используете небольшую хитрость, чтобы сказать, что знак = является разделителем поля.

shell> mysqlimport blah blah --fields-terminated-by ==

Если это не сработает, напишите себе небольшую процедуру для чтения файла, разделите знак = и замените его запятой или чем-то ближе к тому, что mysqlimport хочет видеть какпо умолчанию.

2 голосов
/ 21 января 2011

Вам нужен мастер импорта , не могу сказать, что я лично использовал его с mysql (но с другими СУБД), быстрый гугл показывает это может быть то, что вам нужно, У меня есть ощущение, что phpMyAdmin имел функцию, которая сделала это.

1 голос
/ 21 января 2011

У меня есть 15 различных текстовых файлов, которые входят в одну таблицу, как 15 различных столбцов.

Вы имеете в виду 30 столбцов? 2 колонки загружены из каждого файла?

Возможно, вам придется использовать = (с пробелами с обеих сторон в качестве разделителя). И, как сказал Кен, если этого не произойдет, найдите и замените "=" на запятую ",".

Если у вас есть SSIS, это можно сделать довольно быстро. Установите 15 входных файлов и сопоставьте каждый файл с парой столбцов, например:

Файл1 ... сопоставить с ... Столбец1 и Столбец2
Файл2 ... сопоставить с ... Столбец3 и Столбец4
и т.д.

Или вы можете объединить 15 файлов (это можно легко сделать с помощью Excel) в 1 файл с 30 столбцами и загрузить его.

1 голос
/ 21 января 2011

Сначала создайте таблицу как что-то вроде:

mysql> create table gene (name varchar(10), distance double);

и затем импортировать файл:

mysql> load data infile '/tmp/gene.txt' into table gene columns terminated by ' = ';

Файл должен находиться в месте, доступном для пользователя, под которым выполняется исполняемый файл mysql.

Вы также можете использовать mysqlimport снаружи оболочки mysql. Он подключается к серверу и выдает эквивалентную команду загрузки данных infile.

Я проверил вышеупомянутое с вашими примерами данных, и это сработало.

0 голосов
/ 21 января 2011

Я сделал это, это может показаться странным, но я добавляю сюда, чтобы кто-нибудь узнал, является ли это полезным, я открыл эти файлы данных с помощью электронной таблицы open office, у open office есть удивительные возможности разделения данных. файл в разные столбцы. поэтому я использовал их, разделил столбцы с файлами данных и сохранил их в виде файла Excel (.xls), а затем использовал «sqlmaestro», как предложено m.edmondson, используя импорт данных этого программного обеспечения в качестве функции файла Excel, которой я смог достичь моя задача.

спасибо всем за ваши ценные ответы, они наверняка добавят новые знания в мои знания! спасибо всем еще раз!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...