记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

Oracle11g下有一个表te_equip,采用双主键方式。

表中已经有一部分数据,现在有一csv表格,需要将表格中的数据导入te_equip表中,

并更新表te_equip中已经存在csv表格中的数据。

这里使用以下方法:

先创建一个结果与te_equip一样的表te_equip_bak ,具体如下:

create table te_equip_bak as select * from te_equip where 1=2


可以使用工具软件之类的先将cvs数据搞成sql语句。

再将sql语句导入到te_equip_bak 与te_equip。

最后 可以更新数据了。具体方法如下:

update te_equip a

   set (a.sign_state, a.gold_state, a.operate_id) =
       (select b.sign_state, b.gold_state, b.operate_id
          from te_equip_bak b
         where b.sim = a.sim
           and b.bill_num = a.bill_num)
 where exists (select 1
          from te_equip_bak b
         where b.sim = a.sim
           and b.bill_num = a.bill_num)

转载请标明出处【oracle 联合主键,多表关联更新数据方法】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论