Không có CREATE TEMP FUNCTION ...
như CREATE TEMP TABLE ...
. Nhưng có một mẹo để tạo một hàm trong lược đồ tạm thời pg_temp
, như câu trả lời được liên kết cung cấp
. Hàm chỉ hiển thị trong cùng một phiên và chỉ có thể được gọi bằng tên đủ điều kiện giản đồ:
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
Tôi có thể truy ngược lại ý tưởng này đến bài đăng này của Tom Lane trên pgsql-chung .
Điều gần nhất mà không có thủ thuật sẽ là một tuyên bố chuẩn bị sẵn sàng . Hoạt động giống như một hàm SQL tạm thời sẽ chết vào cuối phiên. Không giống nhau mặc dù vậy, và chỉ có thể được sử dụng bởi chính nó, không phải trong ngữ cảnh của một truy vấn lớn hơn. Ví dụ:
PREPARE upd_tbl AS
UPDATE tbl t SET set_name = $2 WHERE tbl_id = $1;
Gọi:
EXECUTE upd_tbl(123, 'foo_name');
Chi tiết: