Cum se creează proceduri stocate în PostgreSQL

Cum Se Creeaza Proceduri Stocate In Postgresql



Cu PostgreSQL, este posibil să creați proceduri stocate care definesc diverse rutine care ar trebui să fie executate atunci când sunt apelate. Aceste rutine sunt compuse din instrucțiuni SQL care efectuează sarcinile definite în baza de date. De exemplu, puteți crea o procedură stocată care actualizează valorile din tabel atunci când o apelați.

Procedurile stocate ajută la optimizarea bazei de date și la îmbunătățirea reutilizabilității. În loc să trebuiască să executați aceeași interogare, puteți crea sarcina ca procedură stocată pe care o veți apela ori de câte ori este necesar. Veți afla totul despre procedurile stocate până la sfârșitul acestei postări.

Lucrul cu procedurile stocate în PostgreSQL

Ca utilizator PostgreSQL, este posibil să fi observat că funcțiile PostgreSQL nu execută tranzacții. Deși este posibil să creați o tranzacție, nu este posibilă efectuarea acesteia sau revenirea la starea anterioară. Cu toate acestea, aceste limitări sunt ocolite folosind proceduri stocate.







Iată sintaxa de bază pentru a crea o procedură stocată în PostgreSQL:



CREAȚI SAU ÎNLOCUIȚI PROCEDURA nume_procedure(

parametru[i] data_type

)

LIMBA plpsql;

CA $$

DECLARA

variabile_dacă_orice tip_de_date

ÎNCEPE

logică

SFÂRŞIT;

$$

Lucrurile cheie de remarcat din sintaxa dată sunt „procedure_name”, care este numele pe care îl veți folosi pentru procedura stocată, parametrii pe care doriți să îi includeți și tipurile lor de date și logica care sunt în principal instrucțiunile SQL.



Să dăm trei exemple pentru a vă ajuta să înțelegeți cum să creați procedurile stocate în PostgreSQL.





Exemplul 1: O procedură stocată pentru a calcula pătratul unui număr

Pentru primul nostru exemplu, creăm o procedură stocată care utilizează instrucțiunea „RAISE NOTICE” ca o modalitate de a imprima rezultatul către terminal. Procedura stocată ia valoarea întreagă pe care i-o dați atunci când o apelați și îi calculează pătratul.

Iată cum creăm procedura stocată:



Numim parametrul nostru drept „num1” și este un număr întreg. Pentru partea logică, definim modul în care obține pătratul „num1” și îl stochează ca variabilă pătrat. Când executăm comanda, obținem ieșirea „CREATE PROCEDURE” care confirmă că am reușit să creăm procedura stocată cu succes.

Următoarea sarcină este să apelați procedura și să îi oferiți argumentul așteptat.

CALL procedura_nume(argumente);

Veți obține rezultatul CALL care arată că procedura stocată a fost executată și obținem rezultatul așteptat care, în acest caz, este pătratul argumentului pe care l-am adăugat.

Exemplul 2: O procedură stocată pentru a introduce valorile într-o intrare de tabel

Următoarele două exemple arată cum să creați o procedură stocată care funcționează cu un tabel de bază de date. Să creăm rapid tabelul „studenti” cu care vom lucra.

Pentru acest exemplu, creăm o procedură stocată care permite unui utilizator să insereze valorile în tabelul nou creat. Observați cum specificăm parametrii pe care ne așteptăm să fie adăugați ca argumente atunci când apelăm procedura stocată. Mai mult, definim logica care preia argumentele adăugate și execută o instrucțiune INSERT SQL în tabelul „studenti”.

Putem verifica procedurile stocate disponibile rulând următoarea comandă:

\df

Prima procedură stocată pe care o putem vedea din următoarea ieșire este „add_student” pe care am creat-o anterior.

Acum, să apelăm procedura stocată pentru a o executa. Următoarea imagine arată cum avem un tabel gol, dar am apelat procedura stocată pentru a adăuga primul student:

Dacă listăm valorile din tabelul nostru, observați cum argumentele pe care le-am adăugat cu comanda procedurii de apelare sunt valorile pentru primul nostru student din tabelul nostru. Așa creați o procedură stocată pentru a insera valorile într-un tabel.

Rețineți că atunci când creați procedura stocată, parametrii pe care îi specificați trebuie să se potrivească cu ceea ce este așteptat în tabelul dvs. pentru a evita erori. Mai mult, tipul de date trebuie să se potrivească.

Exemplul 3: O procedură stocată pentru a actualiza o intrare de tabel

Mergând mai departe, să creăm o altă procedură stocată care actualizează o intrare de tabel. Dacă doriți să aveți o modalitate rapidă de actualizare a valorilor din tabelul nostru, puteți crea o procedură de actualizare stocată după cum urmează:

Specificați ce coloană doriți să actualizați folosind cuvântul cheie WHERE și noua valoare folosind cuvântul cheie SET. Apoi trebuie să adăugați cuvântul cheie COMMIT pentru a persista modificările.

Să apelăm procedura stocată de actualizare și să adăugăm argumentele așteptate: „student_id” și noul curs.

Dacă listăm intrările din tabelul nostru, putem verifica dacă avem cursul actualizat pentru studentul pe care l-am vizat. Așa funcționează o procedură de actualizare stocată.

Concluzie

Puteți crea orice procedură stocată în PostgreSQL. Trebuie doar să înțelegeți sintaxa de urmat și apoi să vă definiți logica pentru procedura stocată. De acolo, apelați procedura stocată și verificați dacă s-a executat conform așteptărilor. Această postare a explicat despre procedurile stocate în PostgreSQL și a oferit exemple despre cum să le creați.