我无法立即从示例中找到这一点。我想在函数中的循环中递增变量。
例如:
DECLARE
iterator float4;
BEGIN
iterator = 1;
while iterator < 999
.....
iterator ++;
END;
这将如何完成?
我正在看这个关于流量控制的文档:
http://www.postgresql.org/docs/8.4/static/plpgsql-control-structs.html
它们似乎都与我无关,除非这些绝对是模拟递增变量的唯一方法。
要在 PL/pgSQL 中递增变量:
iterator := iterator + 1;
没有
++
运算符。
关于PL/pgSQL中的赋值运算符:
手册中 PL/pgSQL 中循环的正确语法。
您的代码片段将像这样工作:
DECLARE
iterator float4 := 1; -- init at declaration time
BEGIN
WHILE iterator < 999
LOOP
iterator := iterator + 1;
-- do stuff
END LOOP;
END
FOR
循环更简单、更快的替代方案:
BEGIN
FOR i in 1 .. 999 -- i is integer automatically, not float4
LOOP
-- do stuff
END LOOP;
END
变量
自动定义为类型name
并且仅存在于循环内部(循环内忽略变量名称的任何现有定义)。
integer