一尘不染

将CSV导入mysql表

mysql

将csv文件上传到mysql表的最佳/最快方法是什么?我想将第一行数据用作列名。

发现了这一点:

如何将CSV文件导入MySQL表

但是唯一的答案是使用GUI而不是Shell?


阅读 424

收藏
2020-05-17

共1个答案

一尘不染

您无需编写脚本即可从CSV文件中提取信息,而是可以直接将MYSQL链接到该文件并使用以下SQL语法上传信息。

要将Excel文件导入MySQL,请先将其导出为CSV文件。从生成的CSV文件中删除CSV标头,以及Excel可能放在该CSV文件末尾的空数据。

然后,您可以通过运行以下命令将其导入到MySQL表中:

load data local infile 'uniq.csv' into table tblUniq fields terminated by ','
  enclosed by '"'
  lines terminated by '\n'
    (uniqName, uniqCity, uniqComments)

阅读时:将CSV文件直接导入MySQL

编辑

对于您的情况,您需要首先编写一个解释器,以查找第一行并将其分配为列名。


编辑2

来自MySQL文档中的LOAD DATA语法

IGNORE number LINES选项可用于忽略文件开头的行。例如,您可以IGNORE 1 LINES用来跳过包含列名称的初始标题行:

LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES;

因此,您可以使用以下语句:

LOAD DATA LOCAL INFILE 'uniq.csv'
INTO TABLE tblUniq
FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(uniqName, uniqCity, uniqComments)
2020-05-17