Postgres中的迭代

时间:2014-10-21 12:59:20

标签: postgresql

我已在PostgreSQL中准备了两个执行语句,这两个语句都是更新语句。我想将其中两个作为迭代循环运行,例如。

LOOP
  EXECUTE stage1
  EXECUTE stage2
  IF a = b then EXIT;
  END IF
END LOOP

但是PostgreSQL并不喜欢语法。两个准备好的语句在单独运行时工作正常,但它们需要花费一些时间,我需要多次迭代它们,所以我无法手动执行此操作。还有其他方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

简单的sql语言不支持这样的结构。如果您想用PLPGSQL语法编写,则必须编写一个函数来执行此操作:

CREATE FUNCTION some_function() RETURNS void AS $$
--your variable declarations here
BEGIN
        --your code here
END;
$$  LANGUAGE plpgsql;

您可以将RETURNS void替换为您想要返回的类型;

阅读documentation here