Kuinka luoda tallennettuja toimenpiteitä PostgreSQL: ssä

Kuinka Luoda Tallennettuja Toimenpiteita Postgresql Ssa



PostgreSQL:n avulla on mahdollista luoda tallennettuja proseduureja, jotka määrittelevät erilaisia ​​rutiineja, jotka tulee suorittaa kutsuttaessa. Nämä rutiinit koostuvat SQL-käskyistä, jotka suorittavat tietokannassasi määritetyt tehtävät. Voit esimerkiksi luoda tallennetun toimintosarjan, joka päivittää taulukon arvot, kun kutsut sitä.

Tallennetut menettelyt auttavat tietokannan optimoinnissa ja uudelleenkäytettävyyden parantamisessa. Sen sijaan, että joutuisit suorittamaan saman kyselyn, voit luoda tehtävän tallennettuna toimintosarjana, jota kutsut aina tarvittaessa. Opit kaiken tallennetuista toimenpiteistä tämän viestin loppuun mennessä.

Työskentely tallennettujen toimintojen kanssa PostgreSQL:ssä

PostgreSQL-käyttäjänä olet ehkä huomannut, että PostgreSQL-funktiot eivät suorita tapahtumia. Vaikka tapahtuman luominen on mahdollista, sen sitominen tai palauttaminen edelliseen tilaan ei ole mahdollista. Nämä rajoitukset kuitenkin ohitetaan tallennettujen toimenpiteiden avulla.







Tässä on perussyntaksi tallennetun proseduurin luomiseksi PostgreSQL:ssä:



LUO TAI KORVAA MENETTELY procedure_name(

parametri(t) data_type

)

KIELI plpsql;

AS $$

JULISTAA

muuttujat_jos_ mikä tahansa tietotyyppi

ALKAA

logiikka

END;

$$

Tärkeimmät huomioitavat asiat annetusta syntaksista ovat 'menettelyn_nimi', jota käytät tallennetulle toimintosarjalle, parametrit, jotka haluat sisällyttää ja niiden tietotyypit, sekä logiikka, jotka ovat pääasiassa SQL-lauseita.



Annamme kolme esimerkkiä, jotka auttavat sinua ymmärtämään, kuinka tallennetut toiminnot luodaan PostgreSQL:ssä.





Esimerkki 1: Tallennettu menetelmä luvun neliön laskemiseksi

Ensimmäistä esimerkkiä varten luomme tallennetun proseduurin, joka käyttää 'RAISE NOTICE' -käskyä tapana tulostaa tuloste päätteelle. Tallennettu proseduuri ottaa sen kutsun yhteydessä antamasi kokonaislukuarvon ja laskee sen neliön.

Näin luomme tallennetun menettelyn:



Nimeämme parametrillemme 'num1', ja se on kokonaisluku. Logiikkaosalle määritämme, kuinka se saa 'num1':n neliön ja tallentaa sen neliömuuttujaksi. Kun suoritamme komennon, saamme 'CREATE PROCEDURE' -tulosteen, joka vahvistaa, että onnistuimme luomaan tallennettu menettely onnistuneesti.

Seuraava tehtävä on kutsua proseduuri ja antaa sille odotettu argumentti.

CALL menettelyn_nimi(argumentit);

Saat CALL-tulosteen, joka osoittaa, että tallennettu proseduuri on suoritettu, ja saamme odotetun lähdön, joka tässä tapauksessa on lisäämämme argumentin neliö.

Esimerkki 2: Tallennettu menettely arvojen lisäämiseksi taulukkomerkintään

Seuraavat kaksi esimerkkiä osoittavat, kuinka luodaan tallennettu toimintosarja, joka toimii tietokantataulukon kanssa. Luodaan nopeasti 'oppilaat' -taulukko, jonka kanssa työskentelemme.

Tätä esimerkkiä varten luomme tallennetun proseduurin, jonka avulla käyttäjä voi lisätä arvot juuri luotuun taulukkoon. Huomaa, kuinka määritämme parametrit, jotka odotamme lisättävän argumenteiksi, kun kutsumme tallennettua proseduuria. Lisäksi määrittelemme logiikan, joka ottaa lisätyt argumentit ja suorittaa INSERT SQL -käskyn 'opiskelijat' -taulukkoon.

Voimme tarkistaa käytettävissä olevat tallennetut menettelyt suorittamalla seuraavan komennon:

\df

Ensimmäinen tallennettu toimintosarja, jonka voimme nähdä seuraavasta lähdöstä, on aiemmin luomamme 'add_student'.

Kutsutaan nyt tallennettua menettelyä sen suorittamiseksi. Seuraava kuva näyttää kuinka meillä on tyhjä taulukko, mutta kutsuimme tallennettua toimintoa ensimmäisen opiskelijan lisäämiseksi:

Jos luettelemme arvot taulukossamme, huomaa, kuinka kutsumenettelykomennolla lisätyt argumentit ovat taulukon ensimmäisen oppilaan arvoja. Näin luot tallennetun proseduurin arvojen lisäämiseksi taulukkoon.

Huomaa, että kun luot tallennettua toimintosarjaa, määrittämiesi parametrien on vastattava taulukossasi olevia parametreja virheiden välttämiseksi. Lisäksi tietotyypin on vastattava.

Esimerkki 3: Tallennettu menettely taulukkomerkinnän päivittämiseksi

Jatketaan, luodaan toinen tallennettu menettely, joka päivittää taulukkomerkinnän. Jos haluat päivittää taulukon arvot nopeasti, voit luoda tallennetun päivitysproseduurin seuraavasti:

Määritä, minkä sarakkeen haluat päivittää WHERE-avainsanalla ja uusi arvo käyttämällä SET-avainsanaa. Sinun on sitten lisättävä COMMIT-avainsana, jotta muutokset pysyvät voimassa.

Kutsutaan päivityksen tallennettu proseduuri ja lisätään odotetut argumentit: 'student_id' ja uusi kurssi.

Jos luettelemme merkinnät taulukkoomme, voimme varmistaa, että meillä on päivitetty kurssi kohdistetulle opiskelijalle. Näin tallennetut päivitykset toimivat.

Johtopäätös

Voit luoda minkä tahansa tallennetun proseduurin PostgreSQL:ssä. Sinun tarvitsee vain ymmärtää noudatettava syntaksi ja määrittää sitten logiikkasi tallennetulle toimintosarjalle. Kutsu sieltä tallennettu toimintosarja ja varmista, että se on suoritettu odotetulla tavalla. Tämä viesti selitti PostgreSQL:ssä tallennetuista proseduureista ja antoi esimerkkejä niiden luomisesta.