Импорт csv в mysql через командную строку
Я пытаюсь импортировать очень большие .csv-файл (~4 ГБ) в mysql. Я рассматривал возможность использования phpmyadmin, но тогда у вас есть максимальный размер загрузки 2 Мб. Кто-то сказал мне, что я должен использовать командную строку.
Я собирался использовать эти направления для импорта:http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html#c5680
какой будет команда для установки первой строки в.таблица csv как имена столбцов в таблице mysql? Этот вариант доступно через phpmyadmin, поэтому их должна быть версия командной строки mysql, верно?. Пожалуйста, помогите мне. Спасибо.
-Радж
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 и имя таблицы должны быть одинаковыми