您的位置:

csv导入mysql数据库换行(mysql导入csv指定列)

本文目录一览:

如何把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数据库

导入操作

存在特殊字符情况的处理

Book1.csv

编号,名称,说明

1,测试数据1,"测试CSV文件中,有逗号"

2,测试数据2,"测试CSV文件中有""双引号"""

3,测试数据3,"测试CSV文件中,有逗号和""双引号"""

4,测试数据4,普通数据

mysql CREATE TABLE Test_Book1 (

- id int,

- name VARCHAR(10),

- data VARCHAR(100)

- );

Query OK, 0 rows affected (0.05 sec)

下面的 lines terminated by '\r\n' 是 要求换行符号,为 windows的换行

下面的 ignore 1 lines是 忽略第一行的标题行。

mysql LOAD DATA INFILE 'f:/Book1.csv'

- INTO TABLE Test_Book1

- FIELDS TERMINATED BY ','

- OPTIONALLY ENCLOSED BY '"'

- lines terminated by '\r\n'

- ignore 1 lines

- (id, name, data);

Query OK, 4 rows affected (0.00 sec)

Records: 4 Deleted: 0 Skipped: 0 Warnings: 0

mysql select * from test_book1;

+------+-----------+--------------------------------+

| id | name | data |

+------+-----------+--------------------------------+

| 1 | 测试数据1 | 测试CSV文件中,有逗号 |

| 2 | 测试数据2 | 测试CSV文件中有"双引号" |

| 3 | 测试数据3 | 测试CSV文件中,有逗号和"双引号" |

| 4 | 测试数据4 | 普通数据 |

+------+-----------+--------------------------------+

4 rows in set (0.00 sec)

如何将csv导入到mysql数据库

如果你想在Windows下面把.csv文件导入MySQL数据库,那么请看。 在命令提示符下面,打入: mysqlimport --fields-optionally-enclosed-by=""" --fields-terminated-by=, --lines-terminated-by="\r\n" --user=YOUR_USERNAME --password YOUR_DATABASE YOUR_TABLE.csv上面的选项可谓见名知意,包括各域的符号为(“);各域分隔符为(,);DOS下的回车换行符为\r\n; 然后是用户名,提示输入密码,YOUR_DATABASE换成你的数据库名,YOUR_TABLE你的表名,文件最好和表名一致,当然表名可以更改。 如果你想略掉某些行,你可以加入--ignore-lines=X选项,X就是你要略掉的行的序数。