oracle表数据同步 merge语法

简介

MERGE语句是SQL语句的一种。在SQL ServerOracle数据库中可用,MySQL、PostgreSQL中不可用。MERGE是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表(原数据表,source table)或子查询的连接条件对另外一张(目标表,target table)表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。

语法

merge into  T_TABLE_2 t                                                              //命名T_TABLE_2表 别名 t
using (select ID,NAME,PWD from T_TABLE_1) s                       //using子句提供merge操作的数据源表T_TABLE_1,命名s
on (t.NO = s.ID)                                                                             //on子句指定合并的条件 (这里是两个表的主键)

when matched then                                                                    //on子句中的条件成立
  update set                                                                                  //修改语句
  t.NAME = s.NAME,t.PWD=S.PWD                                              //写上要修改的列值
 
when not matched then                                                             //on子句中的条件不成立
  INSERT (t.NO, t.NAME,t.PWD) VALUES (s.ID, s.NAME,s.PWD) //将数据源中的数据添加进来

使用发法对照

现将T_TABLE_1表中的数据复制到T_TABLE_2 表中 其中各表都有三列(表结构可以不同  指定列即可)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值