Импорт csv в mysql через командную строку



Я пытаюсь импортировать очень большой .csv-файл (~4 ГБ) в mysql. Я рассматривал возможность использования phpmyadmin, но тогда у вас есть максимальный размер загрузки 2 Мб. Кто-то сказал мне, что я должен использовать командную строку.



Я собирался использовать эти направления, чтобы импортировать его: http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html#c5680



Какой будет команда для установки первой строки в поле .csv таблица как имена столбцов в таблице mysql? Эта опция доступна через phpmyadmin, так что их должна быть версия командной строки mysql тоже, верно?. Пожалуйста, помогите мне. Спасибо.



- Raj

726   6  

6 ответов:

Попробуйте выполнить эту команду

 load data local infile 'file.csv' into table table
 fields terminated by ','
 enclosed by '"'
 lines terminated by '\n'
 (column1, column2, column3,...)

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

Для получения более подробной информации обратитесь к руководству .

Для установки первой строки в качестве имен столбцов таблицы просто проигнорируйте строку от чтения и добавьте значения в команду.

Вы могли бы сделать

mysqlimport --columns='head -n 1 $yourfile' --ignore-lines=1 dbname $yourfile`

То есть, если ваш файл разделен запятой и не разделен точкой с запятой. В противном случае вам, возможно, придется sed через него тоже.

Попробуйте это:

mysql -uusername -ppassword --local-infile scrapping -e "LOAD DATA LOCAL INFILE 'CSVname.csv'  INTO TABLE table_name  FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'"

Для импорта csv с заголовочной строкой с помощью mysqlimport просто добавьте

--ignore-lines=N

(игнорирует первые N строк файла данных)

Эта опция описана на странице, которую вы связали.

Вы можете выразить это следующим образом:

LOAD DATA LOCAL INFILE 'C:/Users/userName/Downloads/tableName.csv' INTO TABLE tableName FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

Вы можете просто импортировать по

mysqlimport --ignore-lines=1 --lines-terminated-by='\n' --fields-terminated-by=',' --fields-enclosed-by='"' --verbose --local -uroot -proot db_name csv_import.csv

Примечание: имя файла Csv и имя таблицы должны быть одинаковыми

Comments

    Ничего не найдено.