MySQL命令行导入CSV文件

{{ time }}

Step1 创建一个空表, 用来存放数据;

注意

1.不要写主键ID, 主键ID在导入完数据之后你再自行添加

2.这个空表的列与csv文件的列是对应的

示例代码如下

CREATE TABLE IF NOT EXISTS `product`(
  `product_name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '商品名称',
  `product_detail` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '商品详情'
)ENGINE=InnoDB DEFAULT CHARSET=UTF8 COMMENT="商品表";

Step2 运行如下指令以导入数据

LOAD DATA LOCAL INFILE '/mnt/d/_transfer/product.csv' INTO TABLE product FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n';

以上其中/mnt/d/_transfer/product.csv换为你的csv文件本地路径

而product换为你的表名

参考文献

https://stackoverflow.com/questions/2221335/access-denied-for-load-data-infile-in-mysql

后记

在国内的一些教程中会不写LOCAL字眼儿, 那么可能报如下错误

Access denied for user 云云

我觉得搜索英文文档解决问题的速度是中文的7倍. 这是什么造成的?