SELECT INTO
を使用して、自分の関数の1つに一時テーブルを作成したいと考えています。 SELECT INTO
はSQLでは動作しますが、PL/pgSQLでは動作しません。SELECT .. INTOを使ってPL/pgSQLにテーブルを作成する
この文は、テーブルは(orig_table
が関係として存在する場合)mytableは呼ば作成します。
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;
私ができますSELECT INTO
PL/pgSQL内のタイプrecord
の変数ですが、そのレコードからデータを取得するときに構造体を定義する必要があります。 SELECT INTO
は本当に簡単です - SELECT
クエリと同じ構造のテーブルを自動的に作成します。なぜ誰かが関数内で動作しない理由について説明していますか?
宣言した変数を選択できるので、SELECT INTO
はPL/pgSQLで動作が異なるようです。私は一時的なテーブル構造を宣言したくありません。 SQLのように自動的に構造体を作成したいと思っています。
おかげパー
をお試しください!私は以前この問題を解決していたことを知っていました。私はpostgresqlの文書からその文章を覚えています。私はちょうどCREATE TABLE ASについて完全に忘れてしまった。 – nnyby
それは私がちょっと困ってしまった - ありがとう。 – mvexel