将CSV文件导入MySql表,其中一列作为CSV文件的名称

时间:2013-08-19 13:07:29

标签: mysql csv import load-data-infile

我有35个CSV文件,我想导入MYSQL表(比如'test')。我想在'test'表中创建一个列(比如'file_name')。此列将包含从中导入数据的CSV的名称。文件名是唯一的ID,这就是我想在表中输入文件名的原因。

假设我有像X1.csv,X2.CSV,X3.csv ...... X35.csv这样的CSV文件。我希望'test'表中的列为'file_name',这样'test'表看起来像:


col1 - > a,b,c,d

col2 - > x,y,w,z

... ...

...... ....

file_name - > X1,X1,X2,X3


注意:我试图在论坛上搜索此问题,但我找不到任何合适的解决方案。此外,我是MYSQL的新手,请帮助,即使这是一件微不足道的事情。

1 个答案:

答案 0 :(得分:0)

我不确定这是完全您正在寻找什么,但乍一看,您应该调查LOAD DATA INFILE声明:

LOAD DATA INFILE 'X1.csv' INTO TABLE tbl_name -- Load the content of the CSV file
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'    -- assuming fields separate by ",", enclosed by "'"
  LINES TERMINATED BY '\r\n'                  -- assuming end-of-line being '\r\n'
  IGNORE 1 LINES                              -- assuming first line is a header and should be ignored
  SET file_name = 'X1';                       -- force the column `file_name` to be the name of the file

请注意,使用此类声明时,每个字段将放在表格的中。并且CSV数据文件的每一行将在表中加载一行。这意味着结果表中将有多个行具有相同的文件名。实际上每条数据线有一行。