MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 数据库 / 正文

一文总结ORACLE 两表关联更新常见实现方式

2024-11-26 17:39 huorong 数据库 6 ℃ 0 评论

概述

最近开发有个需求:L表的PK_NO对应N表的PACKNO,需要将N表的prepackicode更新为L表的PK_ID

其实就是两表关联更新了,这里简单记录一下常见实现的方式..


表内容

select * from LPN_TEST L;
select * from ncic_lpn N;




实现方式

注意以下两种方法都需要两张表都有主键,如果没主键执行不了的。

1、内联视图更新

UPDATE (
select L.PK_NO,L.PK_ID,N.PACKNO,N.prepackicode from LPN_TEST L,ncic_lpn N where L.PK_NO = N.PACKNO
)t
set T.prepackicode=T.PK_ID; 


2、merge更新

merge into (select N.PACKNO,N.prepackicode from ncic_lpn N) T
using LPN_TEST L
on (T.PACKNO = L.PK_NO)
when matched then 
  update set T.prepackicode=L.PK_ID;



觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~


Tags:oracle 用户 表

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言