Tidak ada CREATE TEMP FUNCTION ...
seperti CREATE TEMP TABLE ...
. Tapi ada trik untuk membuat fungsi di skema sementara pg_temp
, seperti jawaban tertaut yang diberikan
. Fungsi ini hanya terlihat dalam sesi yang sama dan hanya dapat dipanggil dengan nama yang memenuhi syarat skema:
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
Saya dapat melacak kembali ide tersebut ke postingan ini oleh Tom Lane di pgsql-general .
Hal terdekat tanpa trik adalah pernyataan yang disiapkan . Bertindak seperti fungsi SQL sementara yang mati di akhir sesi. Tidak sama hal, meskipun, dan hanya dapat digunakan dengan sendirinya, tidak dalam konteks permintaan yang lebih besar. Contoh:
PREPARE upd_tbl AS
UPDATE tbl t SET set_name = $2 WHERE tbl_id = $1;
Telepon:
EXECUTE upd_tbl(123, 'foo_name');
Detail: