八月 20, 2023
摘要:在本教程中,您将学习如何使用 PL/pgSQL 行类型来声明保存结果集完整行的行变量。
目录
PL/pgSQL 行类型简介
要存储select into
语句返回的结果集的整行,可以使用行类型变量或行变量。
您可以使用以下语法声明一个与一个表行具有相同数据类型的变量:
row_variable table_name%ROWTYPE;
row_variable view_name%ROWTYPE;
要访问行变量的各个字段,可以使用点号 (.
),如下所示:
row_variable.field_name
PL/pgSQL 行类型示例
我们将使用示例数据库中的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
表中的行相同。 - 其次,使用
select into
语句将actor_id
列值为 10 的行赋给selected_actor
变量。 - 第三,使用
raise notice
语句显示查出的演员的名字和姓氏。它使用点符号访问first_name
和last_name
字段。
总结
使用行类型变量 (%ROWTYPE
) 来保存select into
语句返回的结果集中的一行。