Kaip sukurti saugomas procedūras „PostgreSQL“.

Kaip Sukurti Saugomas Proceduras Postgresql



Naudojant PostgreSQL galima sukurti saugomas procedūras, kurios apibrėžia įvairias procedūras, kurios turėtų būti vykdomos iškvietus. Šias procedūras sudaro SQL sakiniai, kurie atlieka apibrėžtas užduotis jūsų duomenų bazėje. Pavyzdžiui, galite sukurti išsaugotą procedūrą, kuri atnaujina jūsų lentelės reikšmes, kai ją iškviečiate.

Išsaugotos procedūros padeda optimizuoti duomenų bazę ir padidinti pakartotinį naudojimą. Užuot turėję vykdyti tą pačią užklausą, galite sukurti užduotį kaip išsaugotą procedūrą, kurią iškviesite, kai tik prireiks. Viską apie saugomas procedūras sužinosite šio įrašo pabaigoje.

Darbas su saugomomis procedūromis PostgreSQL

Kaip PostgreSQL vartotojas galbūt pastebėjote, kad PostgreSQL funkcijos nevykdo operacijų. Nors įmanoma sukurti operaciją, neįmanoma jos įsipareigoti arba grąžinti į ankstesnę būseną. Tačiau šie apribojimai apeinami naudojant saugomas procedūras.







Štai pagrindinė sintaksė, skirta sukurti saugomą procedūrą PostgreSQL:



KURTI AR PAKEISTI PROCEDŪRĄ procedūros_pavadinimas(

parametras [s] data_type

)

KALBA plpsql;

AS $$

DEKLARUOTI

kintamieji_jei_bet koks duomenų_tipas

PRADĖTI

logika

GALAS;

$$

Pagrindiniai dalykai, į kuriuos reikia atkreipti dėmesį iš pateiktos sintaksės, yra „procedūros_pavadinimas“, kurį naudosite saugomai procedūrai, parametrai, kuriuos norite įtraukti, ir jų duomenų tipai bei logika, kurią daugiausia sudaro SQL sakiniai.



Pateiksime tris pavyzdžius, kurie padės suprasti, kaip sukurti saugomas procedūras PostgreSQL.





1 pavyzdys: išsaugota skaičiaus kvadrato skaičiavimo procedūra

Pirmajame pavyzdyje sukuriame saugomą procedūrą, kuri naudoja „RAISE NOTICE“ teiginį kaip būdą spausdinti išvestį į terminalą. Išsaugota procedūra paima sveikojo skaičiaus reikšmę, kurią suteikiate ją iškviesdami, ir apskaičiuoja jos kvadratą.

Štai kaip sukuriame saugomą procedūrą:



Savo parametrą pavadiname „num1“ ir tai yra sveikasis skaičius. Loginėje dalyje apibrėžiame, kaip ji gauna „num1“ kvadratą ir išsaugo jį kaip kvadratinį kintamąjį. Kai vykdome komandą, gauname išvestį „CREATE PROCEDURE“, kuri patvirtina, kad mums pavyko sėkmingai sukurti išsaugotą procedūrą.

Kita užduotis – iškviesti procedūrą ir pateikti jai laukiamą argumentą.

CALL procedura_pavadinimas(argumentai);

Gausite CALL išvestį, rodančią, kad išsaugota procedūra buvo įvykdyta, ir gauname laukiamą išvestį, kuri šiuo atveju yra mūsų pridėto argumento kvadratas.

2 pavyzdys: Išsaugota reikšmių įterpimo į lentelės įrašą procedūra

Toliau pateikti du pavyzdžiai parodo, kaip sukurti saugomą procedūrą, kuri veiktų su duomenų bazės lentele. Greitai sukurkime „studentų“ lentelę, su kuria dirbsime.

Šiame pavyzdyje sukuriame saugomą procedūrą, kuri leidžia vartotojui įterpti reikšmes į naujai sukurtą lentelę. Atkreipkite dėmesį, kaip nurodome parametrus, kuriuos tikimės įtraukti kaip argumentus, kai iškviečiame saugomą procedūrą. Be to, mes apibrėžiame logiką, kuri paima pridėtinius argumentus ir vykdo INSERT SQL sakinį į lentelę „studentai“.

Galime patikrinti turimas saugomas procedūras vykdydami šią komandą:

\df

Pirmoji išsaugota procedūra, kurią galime matyti iš šios išvesties, yra „add_student“, kurią anksčiau sukūrėme.

Dabar iškvieskime išsaugotą procedūrą, kad ją įvykdytume. Toliau pateiktame paveikslėlyje parodyta, kaip turime tuščią lentelę, bet iškvietėme išsaugotą procedūrą, kad pridėtume pirmąjį mokinį:

Jei išvardijame reikšmes lentelėje, atkreipkite dėmesį, kaip argumentai, kuriuos įtraukėme su iškvietimo procedūros komanda, yra mūsų pirmojo mokinio lentelėje reikšmės. Taip sukuriate išsaugotą procedūrą, skirtą reikšmėms įterpti į lentelę.

Atminkite, kad kurdami saugomą procedūrą, jūsų nurodyti parametrai turi atitikti tai, ko tikimasi lentelėje, kad išvengtumėte klaidų. Be to, duomenų tipas turi atitikti.

3 pavyzdys: Išsaugota lentelės įrašo atnaujinimo procedūra

Toliau sukurkime kitą saugomą procedūrą, kuri atnaujina lentelės įrašą. Jei norite greitai atnaujinti reikšmes mūsų lentelėje, galite sukurti saugomą atnaujinimo procedūrą taip:

Nurodykite, kurį stulpelį norite atnaujinti naudodami WHERE raktinį žodį, o naują reikšmę naudodami raktinį žodį SET. Tada turite pridėti raktinį žodį COMMIT, kad pakeitimai išliktų.

Iškvieskime saugomo atnaujinimo procedūrą ir pridėkime laukiamus argumentus: „studento_id“ ir naujas kursas.

Jei įrašus įtrauksime į savo lentelę, galime patikrinti, ar turime atnaujintą konkretaus studento kursą, į kurį taikėme. Taip veikia išsaugoto atnaujinimo procedūra.

Išvada

Galite sukurti bet kurią saugomą procedūrą PostgreSQL. Jums tereikia suprasti sintaksę, kurios reikia laikytis, ir tada apibrėžti saugomos procedūros logiką. Iš ten iškvieskite išsaugotą procedūrą ir patikrinkite, ar ji įvykdė taip, kaip tikėtasi. Šis įrašas paaiškino apie PostgreSQL saugomas procedūras ir pateikė pavyzdžių, kaip jas sukurti.