最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracleupdate关联表的思路总结

来源:懂视网 责编:小采 时间:2020-11-09 09:41:31
文档

Oracleupdate关联表的思路总结

Oracleupdate关联表的思路总结:1、 其中最普通的是update t1 set b=(select b from t2 where t1.a=t2.a); 但是,要注意空值的影响, 如果怕空值的影响,要写成 update t1 set tname= (select sname from t2 where t1.id=t2.id) where exists -
推荐度:
导读Oracleupdate关联表的思路总结:1、 其中最普通的是update t1 set b=(select b from t2 where t1.a=t2.a); 但是,要注意空值的影响, 如果怕空值的影响,要写成 update t1 set tname= (select sname from t2 where t1.id=t2.id) where exists -

1、 其中最普通的是update t1 set b=(select b from t2 where t1.a=t2.a); 但是,要注意空值的影响, 如果怕空值的影响,要写成 update t1 set tname= (select sname from t2 where t1.id=t2.id) where exists - (select 1 from t2 where t1.id=t2.id); 2、对视

1、

其中最普通的是update t1 set b=(select b from t2 where t1.a=t2.a);

但是,要注意空值的影响,

如果怕空值的影响,要写成

update t1 set tname= (select sname from t2 where t1.id=t2.id)

where exists
-


(select 1 from t2 where t1.id=t2.id);

2、对视图的UPDATE语句

update (

select /*+use_hash(t1,t2)*/ t1.tname b1,t2.sname b2

from t1,t2 where t1.id=t2.id)

set b1=b2;

这种方法效率高,但是要注意两个关联字段都要有唯一性索引!避免ORA-01427: 单行子查询返回多个行

3、存储过程

declare

cursor c is select t1.*,t1.rowid from t1;

begin

for c1 in c

loop

update t1 set tname=(select sname from t2 where id=c1.id)

where rowid=c1.rowid and exists (select 1 from t2 where c1.id=t2.id);

end loop;

end;

但是还是要注意要有exists的语句,否则一样解决不了空值问题

4、merge也可以进行update:

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

Oracleupdate关联表的思路总结

Oracleupdate关联表的思路总结:1、 其中最普通的是update t1 set b=(select b from t2 where t1.a=t2.a); 但是,要注意空值的影响, 如果怕空值的影响,要写成 update t1 set tname= (select sname from t2 where t1.id=t2.id) where exists -
推荐度:
标签: 普通 关联 update
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top