多个输入文件加载到单个mysql表

时间:2016-03-17 04:35:17

标签: mysql

我在这里有点新鲜。一直在寻找2天,没有运气,所以我在这里发布我的问题。简单地说,我需要将数据加载到mysql中的表中。现在的问题是这个表的输入数据将来自两个不同的来源。

例如:以下是2个输入文件的格式。

Input_file1

字段 Cust_ID1,Acct_ID1,MODIFIED,Cust_Name,Acct_name,Comp_name1,Add2,Comp_name2,Add4

样本值 C1001,A1001,XXXXXX,JACK,TIM KFC,新加坡,YUM BRAND,SINGAPORE

Input_file2

字段 ID,MODIFIEDBY,Ref_id,Sys_id

样本值 3001,TONY,4001,5001

很抱歉,我无法像excel一样复制数据。 ','是显示单独的值。 字段指定列名称,其对应值位于样本值下。

上述数据需要加载的表格就是这样

示例_table_structure

ID  
Cust_ID1    
Acct_ID1    
Ref_id  
Sys_id  
MODIFIED    
MODIFIEDBY  
Cust_Name   
Acct_name   
Comp_name1  
Add2    
Comp_name2  
Add4

我需要做的是从一次访问的输入数据中将数据加载到此表中。这可能吗。正如您所看到的,订单也不是我可以追加并加载的匹配。这对我来说是一个主要问题。 不,改变输入顺序不是一个选择。数据量巨大,因此需要花费太多精力。对此我有任何帮助,我将不胜感激。另外我想知道我们是否可以使用 shell perl 脚本来执行此操作。

提前感谢您的帮助&时间。

1 个答案:

答案 0 :(得分:0)

 load data local infile 'c:\\temp\\file.csv' 
into table table_name fields terminated by ',' LINES TERMINATED BY '\r\n'  ignore 1 lines 
(@col1,@col2,@col3,@col4,@col5,@col6,@col7,@col8,@col9)
set  Cust_ID1 = @col1,
 Acct_ID1 = @col2,
 MODIFIED =@col3,
 Cust_Name =@col4....;

load data local infile 'c:\\temp\\file2.csv' 
    into table table_name fields terminated by ',' LINES TERMINATED BY '\r\n'  ignore 1 lines 
    (@col1,@col2,@col3,@col4 ) ## here Number the respective columns as per the table
    set  ID = @col1,
     MODIFIEDBY = @col2,
     REF_ID = @col3,
     sys_ID = @col4....

ID,MODIFIEDBY,Ref_id,Sys_id

csv文件2也是一样的。 这样您就可以将文件导入到表中。 注意 : 请将Excel文件另存为csv格式,然后导入