Saglabātās procedūras palīdz optimizēt datubāzi un uzlabot atkārtotu izmantošanu. Tā vietā, lai izpildītu to pašu vaicājumu, varat izveidot uzdevumu kā saglabātu procedūru, kuru izsauksiet, kad vien tas būs nepieciešams. Jūs uzzināsiet visu par saglabātajām procedūrām līdz šī ieraksta beigām.
Darbs ar saglabātajām procedūrām programmā PostgreSQL
Kā PostgreSQL lietotājs jūs, iespējams, pamanījāt, ka PostgreSQL funkcijas neveic transakcijas. Lai gan ir iespējams izveidot darījumu, nav iespējams to izdarīt vai atgriezt iepriekšējā stāvoklī. Tomēr šie ierobežojumi tiek apieti, izmantojot saglabātās procedūras.
Šeit ir norādīta pamata sintakse, lai izveidotu saglabāto procedūru PostgreSQL:
IZVEIDOT VAI AIZMAIET PROCEDŪRU procedūras_nosaukums(
parametrs(-i) datu_veids
)
VALODA plpsql;
AS $$
DEKLARĒT
mainīgie_ja_jebkurš datu_veids
SĀKT
loģika
BEIGAS;
$$
Galvenās lietas, kas jāņem vērā no dotās sintakses, ir “procedūras_nosaukums”, kas ir nosaukums, ko izmantosit saglabātajai procedūrai, parametri, kurus vēlaties iekļaut, un to datu tipi, kā arī loģika, kas galvenokārt ir SQL priekšraksti.
Sniegsim trīs piemērus, lai palīdzētu jums saprast, kā izveidot saglabātās procedūras programmā PostgreSQL.
1. piemērs: saglabāta procedūra skaitļa kvadrāta aprēķināšanai
Pirmajā piemērā mēs izveidojam saglabātu procedūru, kas izmanto paziņojumu “RAISE NOTICE” kā veidu, kā izdrukāt izvadi terminālī. Saglabātā procedūra ņem veselo skaitļu vērtību, ko piešķirat, to izsaucot, un aprēķina tās kvadrātu.
Lūk, kā mēs izveidojam saglabāto procedūru:
Mēs nosaucam savu parametru kā “num1”, un tas ir vesels skaitlis. Loģiskajai daļai mēs definējam, kā tā iegūst “num1” kvadrātu un saglabā to kā kvadrātveida mainīgo. Kad mēs izpildām komandu, mēs saņemam izvadi “CREATE PROCEDURE”, kas apstiprina, ka mums izdevās veiksmīgi izveidot saglabāto procedūru.
Nākamais uzdevums ir izsaukt procedūru un sniegt tai gaidīto argumentu.
CALL procedras_nosaukums(argumenti);Jūs saņemsit CALL izvadi, kas parāda, ka saglabātā procedūra ir izpildīta, un mēs saņemam paredzamo izvadi, kas šajā gadījumā ir pievienotā argumenta kvadrāts.
2. piemērs: saglabāta procedūra vērtību ievietošanai tabulas ierakstā
Šie divi piemēri parāda, kā izveidot saglabātu procedūru, kas darbojas ar datu bāzes tabulu. Ātri izveidosim “studentu” tabulu, ar kuru strādāsim.
Šajā piemērā mēs izveidojam saglabātu procedūru, kas ļauj lietotājam ievietot vērtības jaunizveidotajā tabulā. Ievērojiet, kā mēs norādām parametrus, kurus mēs sagaidām, ka tie tiks pievienoti kā argumenti, izsaucot saglabāto procedūru. Turklāt mēs definējam loģiku, kas ņem pievienotos argumentus un izpilda INSERT SQL priekšrakstu tabulā “studenti”.
Mēs varam pārbaudīt pieejamās saglabātās procedūras, izpildot šādu komandu:
\dfPirmā saglabātā procedūra, ko mēs varam redzēt no tālāk redzamās izvades, ir “add_student”, ko mēs iepriekš izveidojām.
Tagad izsauksim saglabāto procedūru, lai to izpildītu. Nākamajā attēlā parādīts, kā mums ir tukša tabula, bet mēs izsaucām saglabāto procedūru, lai pievienotu pirmo studentu:
Ja mēs uzskaitām vērtības savā tabulā, ievērojiet, kā argumenti, ko pievienojām ar izsaukuma procedūru komandu, ir mūsu pirmā skolēna vērtības mūsu tabulā. Tādā veidā jūs izveidojat saglabātu procedūru vērtību ievietošanai tabulā.
Ņemiet vērā, ka, veidojot saglabāto procedūru, norādītajiem parametriem ir jāatbilst tabulā sagaidāmajiem parametriem, lai izvairītos no kļūdām. Turklāt datu tipam ir jāsakrīt.
3. piemērs: saglabāta procedūra tabulas ieraksta atjaunināšanai
Turpinot, izveidosim citu saglabāto procedūru, kas atjaunina tabulas ierakstu. Ja vēlaties ātri atjaunināt vērtības mūsu tabulā, varat izveidot atjauninājumu saglabāto procedūru šādi:
Norādiet, kuru kolonnu vēlaties atjaunināt, izmantojot atslēgvārdu WHERE, un jauno vērtību, izmantojot atslēgvārdu SET. Pēc tam jums jāpievieno atslēgvārds COMMIT, lai saglabātu izmaiņas.
Izsauksim atjauninājumu saglabāto procedūru un pievienosim sagaidāmos argumentus: “studenta_id” un jauno kursu.
Ja mēs uzskaitām ierakstus savā tabulā, mēs varam pārbaudīt, vai mums ir atjaunināts kurss konkrētajam studentam, kuru mēs atlasījām. Tādā veidā darbojas saglabātā atjauninājuma procedūra.
Secinājums
PostgreSQL varat izveidot jebkuru saglabāto procedūru. Jums tikai jāsaprot sintakse, kas jāievēro, un pēc tam jādefinē saglabātās procedūras loģika. Pēc tam izsauciet saglabāto procedūru un pārbaudiet, vai tā ir izpildīta, kā paredzēts. Šajā ziņojumā tika izskaidrotas PostgreSQL saglabātās procedūras un sniegti piemēri, kā tās izveidot.