ホームページ > データベース > 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;
ログイン後にコピー

キーポイント

  • RETURNS TABLE: 仮想テーブルのデータ型を指定します。この場合、a、b、c という名前の 3 つの整数列を持つテーブルです。
  • INSERT: INSERT ステートメントを使用して、仮想テーブルにデータを設定します。
  • RETURN TABLE: RETURN TABLE を使用して、 function.

関数の呼び出し

これで、関数を呼び出して仮想テーブルを取得できるようになります:

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート