目前我以这种方式声明所有变量:
declare
x int;
y int;
z int;
begin
...
end
是否可以在一行中声明x
,y
和z
(具有相同的类型),如:
declare
x, y, z int;
begin
...
end
到目前为止,the documentation还没有找到任何提示......
答案 0 :(得分:2)
没有排序的语法快捷方式。
也没有必要,因为plpgsql并不需要很多变量。过多的变量表明你滥用plpgsql的性质,最好用作SQL语句的粘合剂。
如果要声明几个变量具有相同的类型,可以显式声明第一个变量并使用variable%TYPE
复制其余变量:
DO
$func$
DECLARE
x int;
y x%TYPE;
z x%TYPE;
BEGIN
RAISE NOTICE 'type of x: %; type of y: %; type of z: %'
, pg_typeof(x), pg_typeof(y), pg_typeof(z);
END
$func$
如果你的问题是关于in one line
(我不这么认为),你可以这样做,但每个都有类型:
x int; y int; z int;
或者您可以使用数组类型来保存任意数量的相同元素类型,或行或记录类型...