1

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

假设我有 CSV 文件,例如 X1.csv、X2.CSV、X3.csv .... X35.csv。我希望“测试”表中的一列作为“文件名”,这样“测试”表看起来像:


col1 -> a, b, c, d

col2 -> x, y, w, z

……

…………

文件名 -> X1、X1、X2、X3


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

4

1 回答 1

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

于 2013-08-19T13:11:47.153 回答