首页 > 数据库 > mysql教程 > 如何从 PostgreSQL 函数创建并返回虚拟表?

如何从 PostgreSQL 函数创建并返回虚拟表?

Linda Hamilton
发布: 2024-12-27 08:33:10
原创
339 人浏览过

How to Create and Return a Virtual Table from a PostgreSQL Function?

从 Postgres 函数返回虚拟表

在 Postgres 中,创建虚拟表(类似于 Oracle 的虚拟表)可以通过以下方式实现一个函数。此函数允许您返回具有已定义结构和内容的自定义表格。

正确语法

以下是您提供的函数的正确语法:

CREATE OR REPLACE FUNCTION "public"."storeopeninghours_tostring" (open_id numeric)
  RETURNS TABLE (a int, b int, c int) AS
DECLARE
  returnrecords RECORD;
BEGIN
  INSERT INTO returnrecords(a, b, c) VALUES (1, 2, 3);
  INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5);
  INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5);
  RETURN TABLE returnrecords;
END;
登录后复制

钥匙Points

  • RETURNS TABLE:指定虚拟表的数据类型。在本例中,它是一个包含三个整数列的表,分别名为 a、b 和 c。
  • INSERT:使用 INSERT 语句用数据填充虚拟表。
  • RETURN TABLE:使用 RETURN TABLE 从函数。

调用函数

您现在可以调用函数来获取虚拟表:

SELECT * FROM "public"."storeopeninghours_tostring"(<open_id>);
登录后复制

替代语法

在 Postgres 8.4 或更高版本中,您还可以使用以下 PL/pgSQL 语法:

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

简单 SQL 解决方案

对于像这样的简单情况,您也可以使用简单的 SQL 语句:

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

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

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