Paano Gumawa ng Mga Naka-imbak na Pamamaraan sa PostgreSQL

Paano Gumawa Ng Mga Naka Imbak Na Pamamaraan Sa Postgresql



Sa PostgreSQL, posible na lumikha ng mga naka-imbak na pamamaraan na tumutukoy sa iba't ibang mga gawain na dapat isagawa kapag tinawag. Ang mga gawaing ito ay binubuo ng mga SQL statement na nagsasagawa ng mga tinukoy na gawain sa iyong database. Halimbawa, maaari kang lumikha ng isang naka-imbak na pamamaraan na nag-a-update ng mga halaga sa iyong talahanayan kapag tinawag mo ito.

Nakakatulong ang mga stored procedure sa database optimization at sa pagpapahusay ng reusability. Sa halip na isagawa ang parehong query, maaari mong gawin ang gawain bilang isang naka-imbak na pamamaraan na tatawagan mo kapag kinakailangan. Malalaman mo ang lahat tungkol sa mga nakaimbak na pamamaraan sa pagtatapos ng post na ito.

Paggawa gamit ang Stored Procedures sa PostgreSQL

Bilang isang gumagamit ng PostgreSQL, maaaring napansin mo na ang mga pag-andar ng PostgreSQL ay hindi nagsasagawa ng mga transaksyon. Bagama't posibleng gumawa ng transaksyon, hindi posible ang paggawa o pagbabalik nito sa dating estado. Gayunpaman, ang mga limitasyong ito ay nilalampasan gamit ang mga nakaimbak na pamamaraan.







Narito ang pangunahing syntax upang lumikha ng isang naka-imbak na pamamaraan sa PostgreSQL:



GUMAWA O PALITAN ANG PROCEDURE procedure_name(

parameter[s] data_type

)

WIKA plpsql;

BILANG $$

MAGPAHAYAG

variables_if_any data_type

MAGSIMULA

lohika

WAKAS;

$$

Ang mga pangunahing bagay na dapat tandaan mula sa ibinigay na syntax ay ang 'procedure_name' na kung saan ay ang pangalan na iyong gagamitin para sa naka-imbak na pamamaraan, ang mga parameter na nais mong isama at ang kanilang mga uri ng data, at ang logic na pangunahin ay ang mga SQL statement.



Magbigay tayo ng tatlong halimbawa upang matulungan kang maunawaan kung paano gawin ang mga nakaimbak na pamamaraan sa PostgreSQL.





Halimbawa 1: Isang Stored na Pamamaraan upang Kalkulahin ang Square ng isang Numero

Para sa aming unang halimbawa, lumikha kami ng isang naka-imbak na pamamaraan na gumagamit ng pahayag na 'PAGPATAAS NG PAUNAWA' bilang isang paraan ng pag-print ng output sa terminal. Kinukuha ng stored procedure ang integer value na ibinibigay mo kapag tinatawag ito at kalkulahin ang parisukat nito.

Narito kung paano namin ginagawa ang nakaimbak na pamamaraan:



Pinangalanan namin ang aming parameter bilang 'num1', at ito ay isang integer. Para sa bahagi ng lohika, tinutukoy namin kung paano nito nakukuha ang parisukat ng 'num1' at iniimbak ito bilang parisukat na variable. Kapag naisakatuparan namin ang utos, nakukuha namin ang output na 'GUMAWA NG PAMAMARAAN' na nagpapatunay na matagumpay naming nagawa ang nakaimbak na pamamaraan.

Ang susunod na gawain ay tawagan ang pamamaraan at bigyan ito ng inaasahang argumento.

TUMAWAG procedure_name(mga argumento);

Makukuha mo ang CALL output na nagpapakita na ang nakaimbak na pamamaraan ay naisakatuparan, at nakukuha namin ang inaasahang output na, sa kasong ito, ay ang parisukat ng argumento na aming idinagdag.

Halimbawa 2: Isang Naka-imbak na Pamamaraan upang Ipasok ang Mga Halaga sa isang Entry sa Talaan

Ang sumusunod na dalawang halimbawa ay nagpapakita kung paano lumikha ng isang naka-imbak na pamamaraan na gumagana sa isang talahanayan ng database. Mabilis nating gawin ang talahanayan ng 'mga mag-aaral' na gagawin natin.

Para sa halimbawang ito, lumikha kami ng isang naka-imbak na pamamaraan na nagpapahintulot sa isang user na ipasok ang mga halaga sa bagong likhang talahanayan. Pansinin kung paano namin tinukoy ang mga parameter na inaasahan naming idaragdag bilang mga argumento kapag tinawag namin ang nakaimbak na pamamaraan. Bukod dito, tinutukoy namin ang lohika na kumukuha ng mga idinagdag na argumento at nagpapatupad ng isang INSERT SQL statement sa talahanayan ng 'mga mag-aaral'.

Maaari naming suriin ang mga magagamit na naka-imbak na mga pamamaraan sa pamamagitan ng pagpapatakbo ng sumusunod na command:

\df

Ang unang naka-imbak na pamamaraan na makikita natin mula sa sumusunod na output ay ang 'add_student' na dati nating ginawa.

Ngayon, tawagan natin ang naka-imbak na pamamaraan upang maisagawa ito. Ang sumusunod na larawan ay nagpapakita kung paano mayroon kaming isang walang laman na talahanayan, ngunit tinawag namin ang nakaimbak na pamamaraan upang idagdag ang unang mag-aaral:

Kung ililista namin ang mga halaga sa aming talahanayan, pansinin kung paano ang mga argumento na idinagdag namin sa command procedure ng tawag ay ang mga halaga para sa aming unang mag-aaral sa aming talahanayan. Iyan ay kung paano ka lumikha ng isang naka-imbak na pamamaraan upang ipasok ang mga halaga sa isang talahanayan.

Tandaan na kapag gumagawa ng nakaimbak na pamamaraan, ang mga parameter na iyong tinukoy ay dapat tumugma sa inaasahan sa iyong talahanayan upang maiwasan ang mga error. Bukod dito, dapat tumugma ang uri ng data.

Halimbawa 3: Isang Stored na Pamamaraan sa Pag-update ng Table Entry

Sa pagpapatuloy, gumawa tayo ng isa pang naka-imbak na pamamaraan na nag-a-update ng entry sa talahanayan. Kung gusto mong magkaroon ng mabilis na paraan ng pag-update ng mga halaga sa aming talahanayan, maaari kang lumikha ng naka-imbak na pamamaraan ng pag-update tulad ng sumusunod:

Tukuyin kung aling column ang gusto mong i-update gamit ang WHERE na keyword at ang bagong value gamit ang SET na keyword. Dapat mong idagdag ang COMMIT na keyword upang ipagpatuloy ang mga pagbabago.

Tawagan natin ang update stored procedure at idagdag ang mga inaasahang argumento: 'student_id' at ang bagong kurso.

Kung ililista namin ang mga entry sa aming talahanayan, maaari naming i-verify na mayroon kaming na-update na kurso para sa partikular na mag-aaral na aming na-target. Iyan ay kung paano gumagana ang isang naka-imbak na proseso ng pag-update.

Konklusyon

Maaari kang lumikha ng anumang nakaimbak na pamamaraan sa PostgreSQL. Kailangan mo lamang na maunawaan ang syntax na susundan at pagkatapos ay tukuyin ang iyong lohika para sa nakaimbak na pamamaraan. Mula doon, tawagan ang naka-imbak na pamamaraan at i-verify na naisakatuparan ito gaya ng inaasahan. Ipinaliwanag ng post na ito ang tungkol sa mga nakaimbak na pamamaraan sa PostgreSQL at nagbigay ng mga halimbawa kung paano gawin ang mga ito.