在MySQL中将CSV导入临时表

时间:2015-11-13 10:17:50

标签: mysql

我有一个相当大的CSV文件,可以每月更改一次,每行大约有450个数据点。我还需要在将数据插入永久表之前对其进行操作。因此,我的计划是将其导入临时表,对其进行操作,然后插入数据。

但是,我无法找到关于是否/如何将CSV导入临时表的任何信息(或者,某种方式导入动态CSV - 第一行在CSV中有列标题)

我尝试使用一列创建临时表,然后导入CSV,但似乎无法导入它。这是我到目前为止所尝试的:

DROP TEMPORARY TABLE IF EXISTS tmp_import;

CREATE TEMPORARY TABLE tmp_import (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY);

LOAD DATA LOCAL INFILE '/import.csv' INTO TABLE tmp_import
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;

作为CSV的示例,它的格式是(所有数据点都是数字):

500,400,101,93,005,22
4,954,23434,123423432,44

1 个答案:

答案 0 :(得分:2)

您可以在命令行上尝试导入选项

mysqlimport --ignore-lines=1 --fields-terminated-by=, --verbose --local
    -u [user] -p [database] /path/to/address.csv

/path/to/address.csv是CSV文件的完整路径,请确保在这种情况下将文件地址的名称与表的名称相匹配,不希望它不起作用,扩展名可能是任何内容或者完全没有。

或者

LOAD DATA LOCAL INFILE 'File.csv' 
INTO TABLE tableName 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n'

参考:MySQL Documentation on LOAD DATA INFILE