2013-08-19 123 views
1

我有35个CSV文件,我想将其导入MYSQL表(例如'测试')。我想在'test'表中创建一列(比如'file_name')。此列将包含从中导入数据的CSV的名称。文件名是唯一的ID,这就是为什么我想要在表中获取文件名作为输入。将CSV文件导入到MySql表中,其中一列用作CSV文件的名称

假设我有像X1.csv,X2.CSV,X3.csv .... X35.csv的CSV文件。我想在 '测试' 表作为 'FILE_NAME' 一栏,使得 '测试' 表看起来像:


COL1 - > A,B,C,d

COL2 - > X,Y ,W,Z

... ...

......

FILE_NAME - > X1,X1,X2,X3


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

回答

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数据文件的每一行将在表格中加载一行。这意味着结果表中将有多行具有相同的文件名。实际上每条数据线一行。