首页 » 技术交流 » 正文

Oracle两表关联批量更新其中一张表的数据

扫一扫用手机浏览

        今天在工作中有一个需求,两表关联批量更新其中一张表的数据,结合网上的知识和自己的摸索,总结出两种方法,方法非常简单,分享一下


第一种方法(本人使用):

UPDATE 表2
  SET 表2.X =
     (SELECT B
       FROM 表1
      WHERE 表1.Y = 表2.Y)
 WHERE EXISTS
     (SELECT 1
       FROM 表1
      WHERE 表1.Y = 表2.Y);

要注意最后的外层where条件很重要,作用是锁其批量更新数据的范围;



第二种方法:

MERGE INTO 表2
   USING 表1
    ON (表2.Y = 表1.Y)                    -- 条件是 Y 相同
WHEN MATCHED
THEN
  UPDATE SET 表2.X = 表1.Z                   -- 匹配的时候,更新

第二种方法没有第一种方法好理解,建议使用第一种

本文标题:Oracle两表关联批量更新其中一张表的数据
本文链接:https://www.7colorblog.com/?id=21
作者授权:除特别说明外,本文由 阿念 原创编译并授权 七彩Blog 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
赞(2

发表评论