首页 > 解决方案 > PL/pgSQL 无限循环

问题描述

我想在两个日期之间循环,但我的 PL/pgSQL 代码进入无限循环。我想我在这里遗漏了一些东西。

do $$
    declare
        the_dates date;
    begin
        select gs from generate_series('2019-11-01'::date, '2012-11-30', '1 day') as gs into the_dates;
        loop
            raise notice '%', the_dates;
        end loop;
    end
$$

我应该如何在这两个日期之间循环?

标签: postgresqlstored-proceduresplpgsqlpostgresql-11

解决方案


您似乎对循环的语法感到困惑。

你在这里有两个不同的东西:

  1. 将零行(因为您的日期向后)选择到日期变量中的查询。
  2. 一个没有限制的循环,将永远引起注意。

https://www.postgresql.org/docs/current/plpgsql-control-structures.html#PLPGSQL-RECORDS-ITERATING


推荐阅读