我无法从示例中立即找到这个。我想在一个函数中增加循环中的变量。
例如:
DECLARE
iterator float4;
BEGIN
iterator = 1;
while iterator < 999
.....
iterator ++;
END;
如何做到这一点?
我正在查看有关流量控制的文件:
http://www.postgresql.org/docs/8.4/static/plpgsql-control-structures.html
它们似乎都不适合我,除非这些绝对是模拟递增变量的唯一方法。
答案 0 :(得分:29)
在plpgsql中增加变量:
iterator := iterator + 1;
没有++
运算符。
关于plpgsql中的赋值运算符:
纠正syntax for loops in PL/pgSQL in the manual。
您的代码片段可以这样工作:
DECLARE
iterator float4 := 1; -- we can init at declaration time
BEGIN
WHILE iterator < 999
LOOP
iterator := iterator + 1;
-- do stuff
END LOOP;
END;
使用FOR
循环的更简单,更快的替代方案:
FOR i in 1 .. 999 -- i is integer automatically, not float4
LOOP
-- do stuff
END LOOP;
变量
name
自动定义为类型integer
,仅存在于循环内部(循环中忽略变量名的任何现有定义)。
答案 1 :(得分:1)