设置customer_id
2024-09-21 17:06:55
update t_user_identification u
set u.customer_id = (select c.customer_id
from t_customer c
where exists (select 1
from t_user us
where us.customer_id = c.customer_id
and exists
(select 1
from t_user_login_way y
where y.user_id = us.user_id
and y.user_name = u.open_id
and y.user_type = ''))
and rownum <= 1)
where u.identify_status in ('');
上面的方法有个缺陷,当数据过多时,数据库会因为执行时间太长而报错ORA-01555,导致全盘扫描中断,
改成下面这样问题就都解决啦
declare
v_num number;
begin
v_num := 0;
for f in (select id,open_id from t_user_identification where identify_status = '') loop
update t_user_identification u
set u.customer_id = (select c.customer_id
from t_customer c
where exists (select 1
from t_user us
where us.customer_id = c.customer_id
and exists
(select 1
from t_user_login_way y
where y.user_id = us.user_id
and y.user_name = f.open_id
and y.user_type = ''))
and rownum <= 1)
where u.identify_status in ('') and u.id = f.id;
v_num := v_num + 1;
if v_num > 50 then
begin
commit;
v_num := 0;
end;
end if;
end loop;
commit;
end;
最新文章
- Java进击C#——应用开发之Asp.net
- Python爬虫进阶二之PySpider框架安装配置
- .net core中使用openssl的公钥私钥进行加解密
- 德国GFZ
- WCF分分钟入门
- Java中的四套读写方案
- CSS3实现背景颜色渐变
- shell 和awk性能对比
- iOS 获取UUID
- 0910 noip模拟
- 2016年11月ACM/ICPC亚洲区北京赛赛后总结
- android学习——项目的目录结构
- DataGrid( 数据表格) 组件[3]
- Yii的场景
- poj 2480 (欧拉函数应用)
- java基于注解的redis自动缓存实现
- scrapy爬虫学习系列二:scrapy简单爬虫样例学习
- web渗透 学习计划(转载)
- Jenkins插件之显示构建时间
- python+selenium页面自动化 元素定位实际遇到的各种问题(持续更新)