PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Czy jest coś takiego jak funkcja temp?

Nie ma CREATE TEMP FUNCTION ... jak istniejąca CREATE TEMP TABLE ... . Istnieje jednak sztuczka polegająca na utworzeniu funkcji w tymczasowym schemacie pg_temp , jak odpowiedź z linkiem . Funkcja jest widoczna tylko w ramach tej samej sesji i może być wywołana tylko przez nazwę zakwalifikowaną do schematu:

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

Mogłem prześledzić ten pomysł do tego posta Toma Lane na pgsql-ogólne .

Najbliższą rzeczą bez sztuczek byłoby przygotowane oświadczenie . Działa podobnie jak tymczasowa funkcja SQL który umiera pod koniec sesji. Nie tak samo rzecz jednak i może być używany tylko sam, a nie w kontekście większego zapytania. Przykład:

PREPARE upd_tbl AS
UPDATE tbl t SET set_name = $2 WHERE tbl_id = $1;

Zadzwoń:

EXECUTE upd_tbl(123, 'foo_name');

Szczegóły:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Format daty Postgresql

  2. Apache Felix nie może uzyskać dostępu do Postgres JDBC

  3. Jak pracować z tabelami bez PRIMARY KEY w Hibernate?

  4. Wprowadzenie do PostgreSQL

  5. Klucze obce + dziedziczenie tabel w PostgreSQL?