PostgreSQL  funksjoner 
, også kjent som lagrede prosedyrer, tillate deg å utføre operasjoner som normalt vil ta flere forespørsler og rundturer i en enkelt funksjon i databasen. Funksjoner tillate database gjenbruk som andre programmer kan samhandle direkte med dine lagrede prosedyrer i stedet for en midt-tier eller duplisere kode. 
 
 funksjoner kan opprettes i språket du ønsker som SQL, PL /PgSQL, C, Python, etc. 
 
 Syntax 
 
 Den grunnleggende syntaks for å lage en funksjon er som følger: 
 CREATE [OR REPLACE] funksjonen funksjons (argumenter) returnerer return_datatype AS $ VARIABLE_NAME $ ERKLÆRER erklæring; [...] BEGIN [...] RETURN {VARIABLE_NAME | value} END; SPRÅK plpgsql;. 
 Hvor, etter 
 
  funksjonsnavn 
 angir navnet på funksjonen 
 
 
 [OR REPLACE] alternativ kan modifisere en eksisterende funksjon. 
 
 
 Funksjonen må inneholde en  tilbake 
 uttalelse. 
 
 
  RETURN 
 klausul presiserer at datatypen du kommer til å gå tilbake fra funksjonen.  return_datatype 
 kan være en base, kompositt eller domenetype, eller kan referere den typen en tabellkolonne. 
 
 
  funksjons kroppen 
 inneholder den kjørbare delen. 
 
 
 AS nøkkelordet brukes for å lage en frittstående funksjon. < .no> 
 
  plpgsql 
 er navnet på det språket at funksjonen er implementert i. Her bruker vi dette alternativet for PostgreSQL, Kan det være SQL, C, intern, eller navnet på en brukerdefinert prosessuelle språk. For bakoverkompatibilitet, kan navnet bli omsluttet av enkle anførselstegn. 
 
 Eksempel 
 
 Følgende eksempel illustrerer skape og å kalle en frittstående funksjon. Denne funksjonen returnerer det totale antallet poster i selskapet tabellen. Vi vil bruke selskapet tabellen, som har følgende poster: 
 testdb # select * from COMPANY; id | Navn | alder | adressere | lønn ---- + ------- + ----- + ----------- + -------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norge | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | Sør-Hall | 45000 7 | James | 24 | Houston | 10000 (7 p) 
 Funksjons totalRecords () er som følger: 
 CREATE OR REPLACE FUNKSJONS totalRecords () returnerer heltall AS $ totalt $ erklære total heltall; BEGIN SELECT count (*) i total fra selskap; TILBAKE totalt; END; $ totalt $ SPRÅK plpgsql; 
 Når de ovennevnte spørringen utføres, ville resultatet bli: 
 testdb # CREATE FUNCTION 
 Nå, la oss utføre et kall til denne funksjonen og sjekke postene i SELSKAPET tabellen 
 testdb = # velge totalRecords (); 
 Når de ovennevnte spørringen utføres, resultatet vil være: 
 totalrecords -------------- 7 (1 rad)

