首页 > 数据库 > mysql教程 > 如何从 Postgres 函数返回虚拟表?

如何从 Postgres 函数返回虚拟表?

Mary-Kate Olsen
发布: 2024-12-27 10:28:10
原创
730 人浏览过

How to Return a Virtual Table from a Postgres Function?

从 Postgres 中的函数返回虚拟表

在 Postgres 中,使用函数创建具有多行和多列的自定义虚拟表需要特定的句法。本文演示了如何正确编写一个返回类似于虚拟表的记录集的函数。

正确语法

定义一个返回包含三个记录的虚拟表的函数整数列,使用以下 PL/pgSQL code:

CREATE OR REPLACE FUNCTION f_foo()
  RETURNS TABLE (a int, b int, c int) AS
$func$
BEGIN
RETURN QUERY VALUES
  (1,2,3)
, (3,4,5)
, (3,4,5)
;
END
$func$  LANGUAGE plpgsql IMMUTABLE ROWS 3;
登录后复制

说明

  • RETURNS TABLE: 指示函数将返回临时行类型。
  • 返回查询VALUES: 用于使用 VALUES 表达式返回多行。
  • ROWS 3: 声明返回的行数,协助查询规划器优化执行。
  • IMMUTABLE: 指定结果永远不会改变,以提高性能

替代选项

简单 SQL:对于简单场景,一条普通的 SQL 语句就足够了:

VALUES (1,2,3), (3,4,5), (3,4,5)
登录后复制

SQL函数:你也可以将上面的内容包装起来SQL 函数中的语句:

CREATE OR REPLACE FUNCTION f_foo()
   RETURNS TABLE (a int, b int, c int) AS
$func$
   VALUES (1, 2, 3)
        , (3, 4, 5)
        , (3, 4, 5);
$func$  LANGUAGE sql IMMUTABLE ROWS 3;
登录后复制

用法

检索虚拟表:

SELECT * FROM f_foo();
登录后复制

以上是如何从 Postgres 函数返回虚拟表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板