SELECT INTO
関数の1つで一時テーブルを作成するために使用したいと思います。SELECT INTO
SQLでは機能しますが、PL/pgSQLでは機能しません。
このステートメントは、mytableというテーブルを作成します(orig_table
リレーションとして存在する場合)。
SELECT *
INTO TEMP TABLE mytable
FROM orig_table;
しかし、この関数をPostgreSQLに入れると、次のエラーが発生します。ERROR: "temp" is not a known variable
CREATE OR REPLACE FUNCTION whatever()
RETURNS void AS $$
BEGIN
SELECT *
INTO TEMP TABLE mytable
FROM orig_table;
END; $$ LANGUAGE plpgsql;
PL / pgSQL内SELECT INTO
でタイプの変数を使用できますが、そのレコードからデータを取得するときに構造を定義する必要があります。本当に簡単です-クエリの同じ構造のテーブルを自動的に作成します。これが関数内で機能しない理由について誰かが説明していますか?record
SELECT INTO
SELECT
SELECT INTO
宣言した変数を選択できるため、PL/pgSQLでは動作が異なるようです。ただし、一時テーブル構造を宣言したくありません。SQLの場合と同じように、構造が自動的に作成されることを望みます。