PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Apakah ada yang namanya fungsi temp?

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:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sqlalchemy:pembaruan hubungan sekunder

  2. Apakah ADO bekerja dengan driver ODBC atau hanya penyedia OLE DB?

  3. Pengantar PostgreSQL

  4. perbedaan pemeriksaan postgres. osx v ubuntu

  5. Kesalahan:Tidak dapat membuat TypedQuery untuk kueri dengan lebih dari satu pengembalian