CREATE TEMP FUNCTION ...
はありません 既存のCREATE TEMP TABLE ...
のように 。ただし、一時スキーマpg_temp
に関数を作成するコツがあります。 、リンクされた回答が提供する
のように 。この関数は同じセッション内でのみ表示され、スキーマ修飾名でのみ呼び出すことができます:
CREATE FUNCTION pg_temp.f_inc(int)
RETURNS int AS 'SELECT $1 + 1' LANGUAGE sql IMMUTABLE;
SELECT pg_temp.f_inc(42);
f_inc
-----
43
このアイデアは、トムレーンによるこの投稿にまでさかのぼることができます。 pgsql-general 。
トリックのない最も近いものは、準備されたステートメントです。 。 一時的なSQL関数のように機能します それはセッションの終わりに死にます。 同じではありません ただし、これは単独でのみ使用でき、より大きなクエリのコンテキストでは使用できません。例:
PREPARE upd_tbl AS
UPDATE tbl t SET set_name = $2 WHERE tbl_id = $1;
電話:
EXECUTE upd_tbl(123, 'foo_name');
詳細: