首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL使用LOAD data INFILE从csv导入数据

问MYSQL使用LOAD data INFILE从csv导入数据
EN

Stack Overflow用户
提问于 2013-01-03 02:55:23
回答 11查看 467.3K关注 0票数 123

我正在将一些20000行的数据从CSV文件导入到Mysql中。

CSV中的列的顺序与MySQL表的列的顺序不同。如何自动分配Mysql表列对应的列?

当我执行的时候

代码语言:javascript
复制
LOAD DATA INFILE'abc.csv' INTO TABLE abc

此查询将所有数据添加到第一列。

请建议将数据导入Mysql的自动语法。

EN

回答 11

Stack Overflow用户

发布于 2013-01-03 13:52:52

您可以使用LOAD DATA INFILE命令将csv文件导入到表格中。

检查此链接。

代码语言:javascript
复制
LOAD DATA LOCAL INFILE 'abc.csv' INTO TABLE abc
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(col1, col2, col3, col4, col5...);

适用于MySQL 8.0用户的:

使用LOCAL关键字hold安全风险,从MySQL 8.0开始,LOCAL功能默认设置为False。您可能会看到以下错误:

错误1148:此MySQL版本不允许使用所使用的命令

您可以通过遵循instructions in the docs来覆盖它。请注意,这样的覆盖并不能解决安全问题,而只是承认您知道并愿意承担风险。

票数 202
EN

Stack Overflow用户

发布于 2013-01-03 13:14:37

您可能需要设置FIELDS TERMINATED BY ','或任何分隔符。

对于CSV文件,您的语句应如下所示:

代码语言:javascript
复制
LOAD DATA INFILE 'data.csv' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
票数 58
EN

Stack Overflow用户

发布于 2015-09-16 17:49:20

在导入文件之前,您必须准备好以下内容:

  • 将文件中的数据导入到的数据库表。
  • 是CSV文件,其数据与表的列数和每列中的数据类型相匹配。
  • 连接到MySQL数据库服务器的帐户具有file和INSERT权限。

假设我们有下表:

​

​

使用以下查询创建表:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `survey` (
  `projectId` bigint(20) NOT NULL,
  `surveyId` bigint(20) NOT NULL,
  `views` bigint(20) NOT NULL,
  `dateTime` datetime NOT NULL
);

您的CSV文件必须正确格式化,例如,请参阅以下附加图像:

​

​

如果一切都好的话..请执行以下查询,从CSV文件加载数据:

注意:请添加CSV文件的绝对路径

代码语言:javascript
复制
LOAD DATA INFILE '/var/www/csv/data.csv' 
INTO TABLE survey 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;

如果一切都做好了。您已成功将数据从CSV导出到表中

票数 53
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14127529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档