Няма 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-общ .
Най-близкото нещо без трикове би било подготвено изявление . Действа много като временна SQL функция който умира в края на сесията. Не е същият нещо обаче и може да се използва само по себе си, а не в контекста на по-голяма заявка. Пример:
PREPARE upd_tbl AS
UPDATE tbl t SET set_name = $2 WHERE tbl_id = $1;
Обаждане:
EXECUTE upd_tbl(123, 'foo_name');
Подробности: