首頁 > 資料庫 > mysql教程 > 如何建立返回虛擬表的 Postgres 函數?

如何建立返回虛擬表的 Postgres 函數?

Linda Hamilton
發布: 2025-01-04 04:20:39
原創
218 人瀏覽過

How Can I Create a Postgres Function That Returns a Virtual Table?

從 Postgres 中的函數傳回虛擬表

可以建立一個 Postgres 函數,該函數傳回具有自訂架構的虛擬表。這種類型的表結構由不同數量的列和行組成。

PL/pgSQL 函式語法

適用於現代 PL/pgSQL 版本(PostgreSQL 8.4 及更高版本) ,語法如下:

CREATE OR REPLACE FUNCTION function_name()
  RETURNS TABLE (column1 data_type, column2 data_type, column3 data_type) AS
$func$
BEGIN
  RETURN QUERY VALUES
  (value1, value2, value3),
  (value4, value5, value6);

END;
$func$  LANGUAGE plpgsql IMMUTABLE ROWS number_of_rows;
登入後複製

重要要點:

  • 使用 RETURNS TABLE 指定自訂行類型。
  • 使用 RETURN QUERY VALUES 填充表。
  • 使用 VALUES 插入多個手動行。
  • 根據已知表格調整 number_of_rows大小。
  • 從合法識別碼中刪除雙引號,特殊情況除外。
  • 如果結果永不改變,則將波動性設定為 IMMUTABLE。

SQL 函數語法

對於簡單情況,請使用此 SQL功能:

CREATE OR REPLACE FUNCTION function_name()
RETURNS TABLE (column1 data_type, column2 data_type, column3 data_type) AS
$func$
SELECT *
FROM (
  VALUES
    (value1, value2, value3),
    (value4, value5, value6)
) AS table_name(column1, column2, column3);

$func$  LANGUAGE sql IMMUTABLE ROWS number_of_rows;
登入後複製

以上是如何建立返回虛擬表的 Postgres 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板