Kuidas luua PostgreSQL-is salvestatud protseduure

Kuidas Luua Postgresql Is Salvestatud Protseduure



PostgreSQL-iga on võimalik luua salvestatud protseduure, mis määratlevad erinevad rutiinid, mida tuleks kutsumisel käivitada. Need rutiinid koosnevad SQL-lausetest, mis täidavad teie andmebaasis määratletud ülesandeid. Näiteks saate luua salvestatud protseduuri, mis värskendab teie tabeli väärtusi selle kutsumisel.

Salvestatud protseduurid aitavad andmebaasi optimeerida ja korduvkasutatavust suurendada. Selle asemel, et täita sama päringut, saate luua ülesande salvestatud protseduurina, mida kutsute igal ajal välja. Selle postituse lõpus saate teada kõike salvestatud protseduuride kohta.

Töötamine salvestatud protseduuridega PostgreSQL-is

PostgreSQL-i kasutajana olete võib-olla märganud, et PostgreSQL-i funktsioonid ei teosta tehinguid. Kuigi tehingut on võimalik luua, ei ole seda võimalik siduda ega eelmisse olekusse tagasi viia. Nendest piirangutest saab aga salvestatud protseduuride abil mööda minna.







Siin on põhiline süntaks PostgreSQL-is salvestatud protseduuri loomiseks:



LOO VÕI ASENDA PROTSEDUURI protseduuri_nimi(

parameetri(te) andmetüüp

)

KEEL plpsql;

AS $$

KUULUTAMA

muutujad_kui_ükskõik milline andmetüüp

ALUSTA

loogika

LÕPP;

$$

Peamised asjad, mida antud süntaksist silmas pidada, on 'protseduuri_nimi', mis on nimi, mida kasutate salvestatud protseduuri jaoks, parameetrid, mida soovite kaasata, ja nende andmetüübid ning loogika, mis on peamiselt SQL-laused.



Toome kolm näidet, mis aitavad teil mõista, kuidas PostgreSQL-is salvestatud protseduure luua.





Näide 1: Salvestatud protseduur arvu ruudu arvutamiseks

Esimese näite jaoks loome salvestatud protseduuri, mis kasutab väljundi terminali printimiseks käsku 'RAISE NOTICE'. Salvestatud protseduur võtab täisarvu väärtuse, mille annate sellele kutsumisel, ja arvutab selle ruudu.

Salvestatud protseduuri loome järgmiselt.



Nimetame oma parameetri kui 'num1' ja see on täisarv. Loogilise osa jaoks määratleme, kuidas see saab ruudu 'num1' ja salvestab selle ruutmuutujana. Käsu täitmisel saame väljundi 'LOO PROTSEDUURI', mis kinnitab, et salvestatud protseduuri õnnestus edukalt luua.

Järgmine ülesanne on kutsuda protseduur välja ja esitada sellele oodatud argument.

CALL protseduuri_nimi(argumendid);

Saate väljundi CALL, mis näitab, et salvestatud protseduur on käivitatud, ja saame oodatud väljundi, mis antud juhul on lisatud argumendi ruut.

Näide 2: Salvestatud protseduur väärtuste tabelikirjesse sisestamiseks

Järgmised kaks näidet näitavad, kuidas luua andmebaasitabeliga töötavat salvestatud protseduuri. Loome kiiresti “õpilaste” tabeli, millega töötame.

Selle näite jaoks loome salvestatud protseduuri, mis võimaldab kasutajal sisestada väärtused vastloodud tabelisse. Pange tähele, kuidas me täpsustame parameetreid, mis loodame salvestatud protseduuri kutsumisel argumentidena lisada. Lisaks määratleme loogika, mis võtab lisatud argumendid ja täidab INSERT SQL-i tabelisse 'õpilased'.

Saame kontrollida saadaolevaid salvestatud protseduure, käivitades järgmise käsu:

\df

Esimene salvestatud protseduur, mida järgmisest väljundist näeme, on 'add_student', mille oleme varem loonud.

Nüüd kutsume selle käivitamiseks salvestatud protseduuri. Järgmisel pildil on näha, kuidas meil on tühi tabel, kuid esimese õpilase lisamiseks kutsusime välja salvestatud protseduuri:

Kui loetleme tabelis olevad väärtused, pange tähele, kuidas argumendid, mille lisasime käsuga kutsumisprotseduur, on meie tabeli esimese õpilase väärtused. Nii saate luua salvestatud protseduuri väärtuste tabelisse sisestamiseks.

Pange tähele, et salvestatud protseduuri loomisel peavad vigade vältimiseks teie määratud parameetrid vastama teie tabelis oodatavatele. Lisaks peab andmetüüp ühtima.

Näide 3: salvestatud protseduur tabelikirje värskendamiseks

Edasi liikudes loome veel ühe salvestatud protseduuri, mis värskendab tabeli kirjet. Kui soovite meie tabelis olevaid väärtusi kiiresti värskendada, saate luua värskenduse salvestatud protseduuri järgmiselt.

Määrake, millist veergu soovite värskendada, kasutades märksõna WHERE, ja uus väärtus, kasutades märksõna SET. Seejärel peate muudatuste säilitamiseks lisama märksõna COMMIT.

Kutsume värskenduse salvestatud protseduuri ja lisame oodatud argumendid: 'student_id' ja uus kursus.

Kui loetleme kirjed oma tabelis, saame kontrollida, kas meil on konkreetse sihitud õpilase jaoks värskendatud kursus. Nii toimib värskenduse salvestatud protseduur.

Järeldus

PostgreSQL-is saate luua mis tahes salvestatud protseduuri. Peate mõistma ainult järgitavat süntaksit ja seejärel määratlema salvestatud protseduuri loogika. Sealt helistage salvestatud protseduurile ja kontrollige, kas see on ootuspäraselt käivitunud. Selles postituses selgitati PostgreSQL-i salvestatud protseduure ja esitati näiteid nende loomise kohta.