我在这里有点新鲜。一直在寻找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 脚本来执行此操作。
提前感谢您的帮助&时间。
答案 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格式,然后导入