我有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的新手,请帮助,即使这是一件微不足道的事情。
答案 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数据文件的每一行将在表中加载一行。这意味着结果表中将有多个行具有相同的文件名。实际上每条数据线有一行。