用于循环通过临时表

时间:2017-01-31 09:56:23

标签: sql postgresql plpgsql

我在function(postgresql)

中有一个临时表
create temporary table temp_table (
id serial
,breakup_id integer
,enquiry_id integer
,estimate_id integer
,customer_name CHARACTER VARYING
,month integer
,year integer
,amount numeric
) on commit drop;

我需要for loop此临时表使用amount更新breakup_id列。如何在postgresql function

中执行此操作

1 个答案:

答案 0 :(得分:2)

如果你有一些复杂的金额值逻辑,请使用

do 
$$ 
declare _r record; 
begin 
  for _r in (select * from temp_table) loop 
    update temp_table set amount='complicated calculated values' where id = _r.id; 
  end loop; 
end; 
$$
;

否则使用UPDATE temp_table set amount = /*simple value*/ where id=..

最后 - 请记住,临时表并不意味着保存数据 - 例如,您无法使用其他后端从中读取数据...