PostgreSQL での setof レコードを使用した仮想テーブルの作成
この記事では、PostgreSQL での 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;
この関数は RETURNS TABLE 句を使用して、関数によって返される行の型を定義します。 RETURN QUERY コマンドは、VALUES 式を使用して複数の行を生成します。 IMMUTABLE 句と ROWS 3 句は、関数のパフォーマンスを最適化します。
仮想テーブルを呼び出すには、関数を呼び出すだけです。
SELECT * FROM f_foo();
さらに、単純な SQL ステートメントを使用して仮想テーブルを構築することもできます。 :
VALUES (1,2,3), (3,4,5), (3,4,5)
より複雑な場合は、列名とタイプ:
SELECT * FROM ( VALUES (1::int, 2::int, 3::int) , (3, 4, 5) , (3, 4, 5) ) AS t(a, b, c);
最後に、仮想テーブルの作成を 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;
これらのアプローチを実装することで、PostgreSQL で仮想テーブルを効果的に作成でき、柔軟性とカスタマイズが可能になります。データ処理中。
以上が「setof Record」を使用してPostgreSQLで仮想テーブルを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。