PostgreSql-声明整数变量

PostgreSql-声明整数变量,postgresql,Postgresql,我正在尝试在postgresql脚本中声明默认值为0的整数变量: DECLARE user_id integer; 但它返回异常: 错误:“整数”处或附近出现语法错误 我不知道如何声明一个变量,然后在while循环中使用这个变量。必须将代码放入用户定义的函数中。它在sql窗口上不起作用。下面的示例是一个返回您发送的数字的函数。变量 --mybase is your database name. If public, remove it. CREATE OR REPLACE FUNCTI

我正在尝试在postgresql脚本中声明默认值为0的整数变量:

DECLARE user_id integer;
但它返回异常:

错误:“整数”处或附近出现语法错误


我不知道如何声明一个变量,然后在while循环中使用这个变量。

必须将代码放入用户定义的函数中。它在sql窗口上不起作用。下面的示例是一个返回您发送的数字的函数。变量

  --mybase is your database name. If public, remove it.
  CREATE OR REPLACE FUNCTION mybase.my_new_rotine(numeric)
  RETURNS numeric AS
  $BODY$
  --here, get the first variable from function
    declare id numeric= $1;

    begin
   --return the number
       return id;
    end;
  $BODY$

  LANGUAGE plpgsql VOLATILE
然后,您可以在sql窗口上使用它,如下所示:

  select * from mybase.my_new_rotine(1)

将返回1,您不能在SQL语句中使用DECLARE。您要执行的操作需要plpgsql。Danieland的答案是正确的,但您可能希望探索DO(),它允许您编写临时plpgsql,而无需定义函数