您的位置:

将csv文件写入到mysql中,csv导入到mysql

本文目录一览:

如何把csv文件批量导入到mysql数据库

通过命令行导入(要求列与列之间以 英文逗号 分割,若字段中含有 , 则以 " 包裹)

load data infile 'D:/mysql-5.7.29-winx64/files/ratings_5.csv' into table ratings fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';

踩坑一:文件路径用 \ 分割会报错,用 / 可(用 \\ 应该也可)

踩坑二:load data 命令报错

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

在 my.ini 中加入(空字符串代表允许从一切目录导入)

[mysqld]

secure-file-priv=''

然后再 Windows 的服务中重新启动 mysql

踩坑三:csv 文件中第一行是诸如 userId 这样的列名

如果你的 csv 文件不大,直接使用 notepad++ 打开后删除第一行即可

但在我们这里,千万级别的文件 notepad++ 无法打开,这时可以考虑两种方法

1. 将 csv 文件传入 Linux 服务器删去第一行

由于不知道如何在 Win 10 中做这个操作,只能通过 Linux 中转执行

sed -i '1d' ratings.csv

检验是否成功,可以打印出第一行观察

cat ratings.csv | head -n 1

2. 通过工具把大的 csv 分成多个 notepad 能够打开的较小文件,对第一个文件删除第一行并依次导入

工具:splitcsv

亲测 5000000 条数据的 csv 文件可以在 notepad++ 中打开(只能同时打开 3 个)

这个工具还有个小坑:ratings_0.csv 的最后一行和 ratings_1.csv 的第一行是重复的,请手动删除

怎么把csv文件导入mysql

mysql导入csv文件,用到的工具phpmyadmin,步骤如下:

登录phpmyadmin(以本地localhost/phpmyadmin为示例),输入数据库账号和密码进行登录。

2.登录以后选择具体的数据库,以test为示例导入csv文件,选中test数据库,选择导入,然后选择格式为csv,其它选项默认,选择好文件点击执行。

注意事项:mysql导出sql文件兼容性比较好。

如何把取得的CSV数据,存入到MySQL数据库中

CSV

格式导入到MYSQL中。

执行语句:

load

data

infile

'你的CSV文件路径'

into

table

你的表

fields

terminated

by

','

lines

terminated

by

'\n';

实例:

库:pc2phone

表:cms_rate

文件路径:C:/A-Z.csv

一:Xls转化(另存)为

.csv格式(A-Z.csv)。存放到C盘根目录下

二:MySQL

Command

Line

Client执行操作。

1:

mysql

use

pc2phone;

Database

Changed

2:

mysql

load

data

infile

'C:/A-Z.csv'

into

table

cms_rate

fields

terminated

by

','

lines

terminated

by

'\n';

如果编码正确,导入成功!

如果出现下边情况,则说明编码格式错误。需要对C:/A-Z.csv文件的编码进行转换。

ERROR

1366

hy000:Incorrect

string

value:

'\xB9\xFA\xBC\xCA\xB3\xA4...'

for

column

'rate_type'

at

row

1

如何将.csv文件导入MySql数据库中

1、LOAD DATA通过读取本地文件系统上的文件,可以将大量数据添加到数据库中。

mysql USE db1;

mysql LOAD DATA INFILE ‘datafile.txt’ INTO TABLE db2.table_name;

2、mysqlimport命令直接从文件读取批量数据。它相当于LOAD DATA语句的一个接口。

mysqlimport根据文件名导入表名,即将文件名第一个圆点前的所有字符作为表名。例如,文件class.txt被装入class表中。

mysqlimport -L -uroot -proot db01 table_name.txt;

3、假如你原来表为T1表,数据导入到了T2表。可以用

insert into T1 select * from T2;