函数中返回多行数据"/>
如何从PL/pgSQL 函数中返回多行数据
PgSQL 自7.3起支持SRF( Set Returning Func. 集合返回函数) 配合有一些新的函数权限选项,
使 schema 的设置更灵活性。SRF 除了手册里提到的内置函数 generate_series generate_subscript 外,自定义函数也可返回集合。 下面示例摘译自 PgSQL wiki :PL/PgSQL如何返回多行结果
我们从处理简单表单函数说起。
create table department(id int primary key, name text);
create table employee(id int primary key, name text, salary int, departmentid int references department);
insert into department values (1, 'Management');
insert into department values (2, 'IT');
insert into employee values (1, 'John Smith', 30000, 1);
insert into employee values (2, 'Jane Doe', 50000, 1);
insert into employee values (3, 'Jack Jackson', 60000, 2);
SRF 可以返回的数据类型可以是现有表中定义过的 rowtype 或通用的 record 类型。
首先我们看一个简单的SQL函数返回现有表中的 rowtype
create function GetEmployees()
returns setof employee as 'select * from employee;'
language 'sql';
这个非常简单的函数直接返回 employee 中的所有行:
更多推荐
如何从PL/pgSQL 函数中返回多行数据
发布评论