本章将讨论 PL/pgSQL 的块结构,同时也会带你编写第一个 PL/pgSQL 程序。
PL/pgSQL 是一种块结构语言,它的函数或存储过程都被组织为块。
PL/pgSQL 块的语法
[ <<标签>> ]
[ declare
声明 ]
begin
语句;
...
end [ 标签 ];
- 每个块都有两个部分:声明和主体。声明部分是可选的,而主体部分是必需的。整个块以
END
关键字后面的;
结束 - 块可以在开头和结尾有一个可选标签。当你想要在块主体的
EXIT
语句中指定它,或想要限定块中声明的变量名时,可以使用块标签 - 声明部分用于声明主体部分所有需要使用的变量。声明部分中每个语句都以
;
结尾 - 主体部分是放置代码实现业务逻辑的地方,每个语句也以
;
结尾
PL/pgSQL 块示例
以下示例定义了一个非常简单的块,它称为匿名块。
DO
不属于块,它用于执行这个匿名块。- 块必须使用单引号括起来,但是为了各种好处,我们使用了美元引号代替单引号。
- 声明部分,我们声明了一个变量
film_count
,并将其初始化为0
:film_count integer := 0;
- 主体部分,我们使用
SELECT INTO
语句,将统计出来的结果赋值给变量film_count
- 之后,使用
raise notice
显示信息%
是占位符,它会被film_count
的值替换
- 标签
first_block
仅用于演示,并没有实际意义。