PL/pgSQL 行类型
简介:在本教程中,您将学习如何使用 PL/pgSQL 行类型来声明保存结果集完整行的行变量。
PL/pgSQL 行类型介绍
要存储 select into 语句返回的结果集的整行,请使用行类型变量或行变量。
您可以使用以下语法声明一个与表中行的数据类型具有相同数据类型的变量:
row_variable table_name%ROWTYPE;
row_variable view_name%ROWTYPE;
要访问行变量的单个字段,请使用点符号 ( .),如下所示:
row_variable.field_name
PL/pgSQL 行类型示例
我们将使用 PostgreSQL Sakila 示例数据库中的 actor 表来展示行类型的工作方式:

以下示例显示了演员 ID 10 的名字和姓氏:
do $$ declare
selected_actor actor%rowtype;
begin
-- select actor with id 10
select *
from actor
into selected_actor
where actor_id = 10;
-- show the number of actor
raise notice 'The actor name is % %',
selected_actor.first_name,
selected_actor.last_name;
end; $$
这个怎么运作。
- 首先,声明一个名为
selected_actor的行变量,其数据类型与actor表中的行相同。 - 其次,使用语句将
actor_id列中值为 10的行分配给selected_actor变量select into。 - 第三,使用
raise notice语句显示所选演员的名字和姓氏。它使用点表示法访问first_name和last_name字段。
概括
- 使用行类型变量 (
%ROWTYPE) 来保存select into语句返回的结果集的一行。