2015-03-13 6 views
1

У меня очень большой файл с разделителями табуляции. Это около 500 колонок в ширину и, возможно, миллион записей. Это сочетание текста, дат и цифр. На самом деле меня интересует только несколько столбцов изнутри - остальные будут удалены.Импорт очень большого файла с разделителями табуляции в MySQL БЕЗ создания таблицы

Я хочу импортировать его в MySQL, но это одноразовая (возможно, 2- или 3-off) задача, и я действительно не могу беспокоиться о создании пустой таблицы для команды LOAD DATA INFILE.

Каков метод минимального усилия для достижения этого? Можно сделать LOAD DATA INFILE, чтобы создать таблицу на лету с колонками VARCHAR/TEXT или аналогичными?

ответ

1

Вам нужно создать таблицу. Но если вам нужны только определенные столбцы, вы можете их выбрать.

Создайте таблицу нужных столбцов.

Вы можете запустить LOAD DATA следующим образом.

LOAD DATA LOCAL INFILE 'import.csv' INTO TABLE yournewtable 
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' 
(@col1,@col2) set [email protected],[email protected]; 

@ col1, @ col2 являются переменными из CSV. Colum1, Column2 представляют столбцы в созданной вами таблице.

+1

Прекрасно работает. Для будущей справки мне понадобился 2-й и 229-й столбцы, я ввел следующие скобки: '(@ dummy, @ col2, @ dummy, @ dummy, ... * 223, @ dummy, @ col229)', а затем использовали '@ col2' и' @ col229' в финальном заявлении – StackG