块结构

156
2023/08/01 15:18:52

本章将讨论 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 仅用于演示,并没有实际意义。