数据库oracle中into是什么,Oracle数据库之Oracle Merge Into 用法

本文主要向大家介绍了Oracle数据库之Oracle  Merge Into 用法,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

da5ffd9eed4c72b63602dcdab6a6deac.png

语法:MERGE [INTO [schema .] table [t_alias]USING [schema .] { table | view | subquery } [t_alias]ON ( condition )WHEN MATCHED THEN merge_update_clauseWHEN NOT MATCHED THEN merge_insert_clause;

介绍

MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。

举例

shop_supplier 门店和经销商关系表 :shop_id (门店表主键),supplier 经销商IDshop_header  门店基础信息表: row_id (门店表主键,uuid),shop_code 门店编码

门店经销商关系表存的是门店和经销商关系,存的是门店ID(和门店编码不同)此时要求将A经销商下的部分或者全部门店替换到B经销商下,前台选择原经销商和新经销商传到后台为经销商ID(),输入框输入要替换的门店编码。

此时用该语句即可解决,第一步:判断所输入的所有门店是否有不在原经销商下的,有的话抛出异常,将信息带出第二步:用merge into 将原经销商A下的所有或者部分门店替换到新经销商B下第三步:将原经销商A下的门店关系删除解绑。第一种:全部替换,也即是不输入门店,将A经销商下所有的门店换绑定到B经销商下,sql语句:

MERGE INTO ( SELECT * FROM  shop_supplier T WHERE T .SUPPLIER = 'supplier2') t2 USING ( SELECT * FROM  shop_supplier  T WHERE T .SUPPLIER = 'supplier1' )) t1ON (t1.SHOP_ID = t2.SHOP_ID)WHEN MATCHED THEN    UPDATE SET t2.UPDATE_DT = SYSDATE,t2.UPDATE_ID = ?WHEN NOT MATCHED THEN    INSERT (t2.ROW_ID,SHOP_ID,SUPPLIER)VALUES    (SYS_GUID(),t1.SHOP_ID,'supplier2')

如果新经销商和原经销商下都有门店s1则只需更新下新经销商和s1的某些字段如果新经销商没有门店s1  则将这条数据insert

本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值