天天看点

oracle批量递增更新字段值

业务场景,假设表test_table字段num是按大小排列的无规则数字,如,1,2,3,10,45,87,现在需要改成按规律递增的数字,以便后续新数据扩展,如10,20,30,40,50这样,这样在10和20之间新增数据15,15的前后也可以新增数据,而不至于像,1,2,3这样无法在1和2或者2和3之间新增数据了。

declare
n int;--定义变量 
begin
n:=10;--为i赋值 
for i in (select * from test_table order by num ) loop
Update test_table a Set a.num= n
Where a.id = i.id;
 n:=n+10;--i依次加10 
Commit;
end loop;
end;
           

更改前数据:

id num
1 1
2 3
3 2
4 10

更改后数据:

id num
1 10
2 30
3 20
4 40