我正在尝试从文本文件批量上传到MySQL数据库。 首先,我将文件中的所有数据加载到临时帮助器表(temp_rules_upload)中,批量上传后将删除该表。 然后,我希望将临时表中的每条记录插入到几个选定的列的2个单独的表(table_a和table_b)中。
问题:-
我尝试了以下脚本。由于顺序发生,我只得到了LAST_INSERT_ID()的最后一个主键
SQL脚本:-
LOAD DATA LOCAL INFILE 'rule_1.txt'
INTO TABLE temp_rules_upload
COLUMNS TERMINATED BY '|'
LINES TERMINATED BY '\n' IGNORE 1 LINES
(groupname,starting_material_code,lower_limit,higher_limit,description,severity,active,created_date,created_by);
insert into table_a(active,create_date,code,description,severity)
select true,CURDATE(),groupname,description,severity from temp_rules_upload;
SET @ERROR_ID=LAST_INSERT_ID();
insert into table_b(active,create_date,code,description,groupname,higher_limit,lower_limit,compatibility_error_id,starting_material_id)
select true,CURDATE(),starting_material_code,description,groupname,higher_limit,lower_limit,@ERROR_ID,null from temp_rules_upload;
文件数据:(rule_1.txt)
1004 : 1964|1004|||not compatible with zzz|Error|Yes|6/20/2019|AAA
1004 : 1964|1964|||not compatible with ffff|Error|Yes|6/20/2019|AAA
答案 0 :(得分:0)
我通过拆分为两个单独的任务来处理此问题。我认为不可能使用LOAD DATA LOCAL INFILE