PostgreSql - 声明整数变量

时间:2016-11-23 18:19:10

标签: postgresql

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

DECLARE user_id integer;

但它返回异常:

  

错误:语法错误处于或接近“整数”

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

2 个答案:

答案 0 :(得分:3)

您无法在SQL语句中使用DECLARE。你想做什么需要plpgsql。 danielarend的回答是正确的,但你可能想要探索DO(https://www.postgresql.org/docs/current/static/sql-do.html),它可以让你编写adhoc plpgsql而无需定义函数。

答案 1 :(得分:2)

您必须将代码放在用户定义的函数中。它不适用于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