欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle一种非常规的update方法

程序员文章站 2022-06-01 16:31:41
...

用一张表的数据更新另一张表的数据,一般的update方式:

update tb_client_win_lost_report a set a.rolling_code_id = (select rolling_code_id from temp_role_id b where a.id= b.id)
where exists (select 1 from temp_role_id c where a.id = b.id);

这种方式需要对temp_role_id表扫描多次。

优化后的update方式:

update (select a.rolling_code_id,b.rolling_code_id from tb_client_win_lost_report a ,temp_role_id b where a.id = b.id)
set a.rolling_code_id = b.rolling_code_id ;

这张更新方式可以极大减少对表的扫描情况,从而达到优化的效果。

–记录于2014年中国软件技术大会

相关标签: 数据库 oracle