一尘不染

在plpgsql的循环中递增数字

sql

我无法从示例中立即找到它。我想在一个函数的循环中增加一个变量。

例如:

DECLARE
   iterator float4;
BEGIN
   iterator = 1;

    while iterator < 999
       .....
      iterator ++;
END;

怎么办呢?

我正在查看有关流控制的文档:http :
//www.postgresql.org/docs/8.4/static/plpgsql-control-
structures.html

而且它们似乎都与我无关,除非这些绝对是模拟递增变量的唯一方法。


阅读 144

收藏
2021-05-16

共1个答案

一尘不染

要在plpgsql中增加变量:

iterator := iterator + 1;

没有++操作员。

在手册中正确修改了PL /
pgSQL中循环的语法

您的代码片段将像这样工作:

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并且仅在循环内部存在(变量名的任何现有定义在循环内都会被忽略)。

2021-05-16