如何从PL/pgSQL 函数中返回多行数据

编程入门 行业动态 更新时间:2024-10-14 18:17:24

如何从PL/pgSQL <a href=https://www.elefans.com/category/jswz/34/1771370.html style=函数中返回多行数据"/>

如何从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 函数中返回多行数据

本文发布于:2024-03-13 19:27:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1734650.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   行数   PL   pgSQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!