我正在将一些20000行的数据从CSV文件导入到Mysql中。
CSV中的列的顺序与MySQL表的列的顺序不同。如何自动分配Mysql表列对应的列?
当我执行的时候
LOAD DATA INFILE'abc.csv' INTO TABLE abc此查询将所有数据添加到第一列。
请建议将数据导入Mysql的自动语法。
发布于 2013-01-03 13:52:52
您可以使用LOAD DATA INFILE命令将csv文件导入到表格中。
检查此链接。
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来覆盖它。请注意,这样的覆盖并不能解决安全问题,而只是承认您知道并愿意承担风险。
发布于 2013-01-03 13:14:37
您可能需要设置FIELDS TERMINATED BY ','或任何分隔符。
对于CSV文件,您的语句应如下所示:
LOAD DATA INFILE 'data.csv' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;发布于 2015-09-16 17:49:20
在导入文件之前,您必须准备好以下内容:
假设我们有下表:

使用以下查询创建表:
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文件的绝对路径
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导出到表中
https://stackoverflow.com/questions/14127529
复制相似问题