Cum se creează o funcție PostgreSQL pentru a returna un tabel
Când aveți o bază de date PostgreSQL și doriți să verificați înregistrările din tabel, utilizarea periodică a unei funcții este cea mai convenabilă modalitate, în special o funcție PostgreSQL care returnează un tabel în setul de rezultate. În acest fel, vă încapsulați setul de rezultate, iar utilizarea acestei abordări ajută la o organizare mai bună a codului.
Următoarea este sintaxa pentru a crea o funcție PostgreSQL care returnează un tabel:
CREATE OR REPLACE FUNCTION function_name(lista_parametri)
RETURNS TABLE(listă_coloană)
CA $$
BEGIN RETURN QUERY(interogare);
SFÂRŞIT;
$$ LIMBA plpgsql
Lucrul bun despre crearea unor astfel de funcții este că vă permite să specificați diverse „listă_coloană” în loc să returnați o singură valoare din tabelul dumneavoastră. Să avem două exemple care să ne ajute să înțelegem ce pași trebuie urmați.
Exemplul 1: Lucrul cu o singură intrare
Când creați o funcție care returnează un tabel, trebuie să furnizați argumentul de utilizat cu interogarea de returnare. Argumentul poate fi un model sau o intrare specifică. Acest exemplu oferă un caz în care folosim o singură intrare ca argument.
Următorul este tabelul „student” pe care îl vom folosi pentru interogarea noastră:
În imaginea următoare, creăm o funcție numită „get_student” care ia un INT ca argument. În secțiunea RETURNS TABLE, returnăm un tabel cu patru coloane: „student_id”, „student_name”, „student_faculty” și „current_status”.
Toate aceste coloane își primesc valorile din interogarea de returnare pe care o definim. Observați că interogarea returnată folosește o instrucțiune WHERE folosind lista de parametri pe care o specificăm la crearea funcției.
Odată ce creați funcția, veți obține o ieșire similară cu cea pe care am avut-o anterior, care confirmă că funcția dvs. PostgreSQL a fost creată cu succes. Pentru a verifica acest lucru în continuare, rulați următoarea comandă pentru a lista funcțiile disponibile:
\df *get_student();Adăugăm asteriscurile pentru a se potrivi cu orice funcție care are numele specificat. Rezultatul arată că avem funcția noastră PostgreSQL în baza noastră de date.
Ultimul pas este testarea funcției create. Rulați instrucțiunea „select” pentru a apela funcția. Apoi, adăugați argumentul așteptat. Pentru cazul nostru, parametrul este de tip INT. Astfel, adăugăm 1 ca argument pentru a prelua înregistrările care se potrivesc și a returna un tabel, așa cum se demonstrează în continuare:
Exemplul 2: Lucrul cu un model de intrare
Când nu sunteți sigur de valoarea de utilizat cu interogarea de returnare, puteți utiliza operatorul ILIKE pentru a potrivi un model dat. De exemplu, dacă aveți un nume și cunoașteți doar o secțiune a șirului, operatorul ILIKE vă permite să utilizați simbolul „%” pentru a defini cum va fi modelul dvs.
Folosim următorul tabel pentru acest caz și vizam coloana cu nume:
Creăm o funcție care este similară cu cea pe care am făcut-o mai devreme. Cu toate acestea, tipul de parametru s-a schimbat și interogarea de returnare folosește operatorul ILIKE care este adăugat ca argument la apelarea funcției.
Odată ce funcția este gata, o putem apela pentru a returna tabelul. Există diferite moduri de a face acest lucru. De exemplu, dacă modelul de căutare conține „Jo” în șir, executăm interogarea de comandă după cum urmează:
Selectați * din get_details(‘%Jo%’);Potrivim toate valorile cu „Jo” în șirul lor, dându-ne două înregistrări.
Dacă știm doar ultima parte a unui șir, răsucim interogarea și o rulăm după cum urmează:
Selectați * din get_details(‘%Tyson’);
În cele din urmă, dacă cunoaștem prima parte a șirului, adăugăm simbolul „&” după model, așa cum se arată în continuare:
Selectați * din get_details(‘Tim%’);
Acestea sunt exemplele diferite despre cum să utilizați funcția PostgreSQL pentru a returna un tabel.
Concluzie
PostgreSQL este o bază de date puternică, cu numeroase caracteristici. Când creați funcții, le puteți seta să returneze un tabel ca set de rezultate din diferite motive, inclusiv realizarea încapsulării. Această postare a prezentat două exemple de creare și utilizare a unei funcții care returnează un tabel în PostgreSQL.