Postgres の関数から仮想テーブルを返す
Postgres では、関数を使用して複数の行と列を持つカスタム仮想テーブルを作成するには、特定の構文。この記事では、仮想テーブルに似た setof レコードを返す関数を正しく記述する方法を説明します。
正しい構文
3 つの仮想テーブルを返す関数を定義するには整数列の場合は、次の PL/pgSQL を使用します。コード:
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;
説明
代替オプション
単純な 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 中国語 Web サイトの他の関連記事を参照してください。