de1*_*7ed 55 mysql csv load-data-infile
我正在尝试将一个非常大的.csv文件(~4gb)导入到mysql中.我正在考虑使用phpmyadmin,但是你的最大上传大小为2mb.有人告诉我,我必须使用命令行.
我打算使用这些说明导入它:http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html#c5680
将.csv表中的第一行设置为mysql表中的列名的命令是什么?这个选项可以通过phpmyadmin获得,所以它们也必须是一个mysql命令行版本,对吗?请帮我.谢谢.
-Raj
Bal*_*ash 124
试试这个命令
load data local infile 'file.csv' into table table
fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(column1, column2, column3,...)
Run Code Online (Sandbox Code Playgroud)
这里的字段是数据需要放置的实际表字段.封闭的和和终止的行是可选的,如果您的列用双引号括起来可以帮助,例如Excel导出等.
有关详细信息,请查看手册.
要将第一行设置为表列名,只需忽略要读取的行并在命令中添加值.
Nie*_*hem 11
你可以做一个
mysqlimport --columns='head -n 1 $yourfile' --ignore-lines=1 dbname $yourfile`
Run Code Online (Sandbox Code Playgroud)
也就是说,如果您的文件以逗号分隔并且不是分号分隔.否则你也可能需要sed
通过它.
小智 10
试试这个:
mysql -uusername -ppassword --local-infile scrapping -e "LOAD DATA LOCAL INFILE 'CSVname.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'"
Run Code Online (Sandbox Code Playgroud)
要使用mysqlimport导入带有标题行的csv,只需添加即可
--ignore-lines=N
Run Code Online (Sandbox Code Playgroud)
(忽略数据文件的前N行)
您链接的页面中描述了此选项.
您可以简单地导入
mysqlimport --ignore-lines=1 --lines-terminated-by='\n' --fields-terminated-by=',' --fields-enclosed-by='"' --verbose --local -uroot -proot db_name csv_import.csv
Run Code Online (Sandbox Code Playgroud)
注意:Csv 文件名和表名要一致
归档时间: |
|
查看次数: |
162621 次 |
最近记录: |