Neexistuje žádná CREATE TEMP FUNCTION ... jako stávající CREATE TEMP TABLE ... . Existuje však trik, jak vytvořit funkci v dočasném schématu pg_temp , stejně jako odpovědi s odkazem
. Funkce je viditelná pouze v rámci stejné relace a lze ji volat pouze jménem kvalifikovaným pro schéma:
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 Nápad jsem mohl vysledovat k tomuto příspěvku Toma Lanea na pgsql-general .
Nejbližší věc bez triků by byla připravená výpověď . Funguje podobně jako dočasná funkce SQL který na konci sezení zemře. Není stejný a lze je použít pouze samostatně, nikoli v kontextu většího dotazu. Příklad:
PREPARE upd_tbl AS
UPDATE tbl t SET set_name = $2 WHERE tbl_id = $1;
Volejte:
EXECUTE upd_tbl(123, 'foo_name');
Podrobnosti: