Како креирати ускладиштене процедуре у ПостгреСКЛ-у

Kako Kreirati Uskladistene Procedure U Postgreskl U



Са ПостгреСКЛ-ом, могуће је креирати ускладиштене процедуре које дефинишу различите рутине које треба да се изврше када се позову. Ове рутине се састоје од СКЛ наредби које обављају дефинисане задатке у вашој бази података. На пример, можете креирати ускладиштену процедуру која ажурира вредности у вашој табели када је позовете.

Сачуване процедуре помажу у оптимизацији базе података и побољшању поновне употребе. Уместо да извршавате исти упит, можете креирати задатак као ускладиштену процедуру коју ћете позвати кад год буде потребно. Научићете све о ускладиштеним процедурама до краја овог поста.

Рад са ускладиштеним процедурама у ПостгреСКЛ-у

Као корисник ПостгреСКЛ-а, можда сте приметили да ПостгреСКЛ функције не извршавају трансакције. Иако је могуће креирати трансакцију, њено уписивање или враћање у претходно стање није могуће. Међутим, ова ограничења се заобилазе коришћењем ускладиштених процедура.







Ево основне синтаксе за креирање ускладиштене процедуре у ПостгреСКЛ-у:



ЦРЕАТЕ ОР РЕПЛАЦЕ ПРОЦЕДУРЕ име_процедуре(

параметар[с] тип_података

)

ЛАНГУАГЕ плпскл;

АС $$

ДЕЦЛАРЕ

променљиве_ако_било који тип_података

ЗАПОЧЕТИ

логика

КРАЈ;

$$

Кључне ствари које треба приметити из дате синтаксе су „процедуре_наме“ које је име које ћете користити за ускладиштену процедуру, параметри које желите да укључите и њихови типови података, и логика која су углавном СКЛ изрази.



Хајде да дамо три примера који ће вам помоћи да разумете како да креирате ускладиштене процедуре у ПостгреСКЛ-у.





Пример 1: Сачувана процедура за израчунавање квадрата броја

За наш први пример, креирамо ускладиштену процедуру која користи наредбу „РАИСЕ НОТИЦЕ“ као начин штампања излаза на терминалу. Складиштена процедура узима целобројну вредност коју јој дате када је позовете и израчунава њен квадрат.

Ево како креирамо ускладиштену процедуру:



Наш параметар називамо „нум1“, и то је цео број. За логички део, дефинишемо како добија квадрат „нум1“ и чува га као променљиву квадрат. Када извршимо наредбу, добијамо излаз „ЦРЕАТЕ ПРОЦЕДУРЕ“ који потврђује да смо успели да креирамо сачувану процедуру успешно.

Следећи задатак је позвати процедуру и дати јој очекивани аргумент.

ЦАЛЛ име_процедуре(аргументи);

Добићете излаз ЦАЛЛ који показује да је ускладиштена процедура извршена, а ми добијамо очекивани излаз који је, у овом случају, квадрат аргумента који смо додали.

Пример 2: Сачувана процедура за уметање вредности у унос табеле

Следећа два примера показују како се креира ускладиштена процедура која ради са табелом базе података. Хајде да брзо направимо табелу „ученици“ са којом ћемо радити.

За овај пример, креирамо ускладиштену процедуру која омогућава кориснику да убаци вредности у новокреирану табелу. Обратите пажњу на то како специфицирамо параметре за које очекујемо да ће бити додати као аргументи када позовемо ускладиштену процедуру. Штавише, дефинишемо логику која узима додате аргументе и извршава ИНСЕРТ СКЛ наредбу у табели „студенти“.

Доступне ускладиштене процедуре можемо да проверимо тако што ћемо покренути следећу команду:

\дф

Прва ускладиштена процедура коју можемо видети из следећег излаза је „адд_студент“ коју смо претходно креирали.

Сада, позовимо ускладиштену процедуру да бисмо је извршили. Следећа слика показује како имамо празну табелу, али смо позвали ускладиштену процедуру да бисмо додали првог ученика:

Ако наведемо вредности у нашој табели, приметите како су аргументи које смо додали командом процедуре позива вредности за нашег првог ученика у нашој табели. Тако креирате ускладиштену процедуру за уметање вредности у табелу.

Имајте на уму да када креирате ускладиштену процедуру, параметри које наведете морају да се поклапају са оним што се очекује у табели да би се избегле грешке. Штавише, тип података мора да се подудара.

Пример 3: Сачувана процедура за ажурирање уноса табеле

Идемо даље, хајде да направимо још једну ускладиштену процедуру која ажурира унос табеле. Ако желите да имате брз начин ажурирања вредности у нашој табели, можете креирати ускладиштену процедуру ажурирања на следећи начин:

Одредите коју колону желите да ажурирате користећи кључну реч ВХЕРЕ и нову вредност помоћу кључне речи СЕТ. Затим морате додати кључну реч ЦОММИТ да бисте задржали промене.

Позовимо ускладиштену процедуру ажурирања и додајмо очекиване аргументе: „студент_ид“ и нови курс.

Ако наведемо уносе у нашој табели, можемо да потврдимо да имамо ажурирани курс за одређеног ученика који смо циљали. Тако функционише ускладиштена процедура ажурирања.

Закључак

Можете креирати било коју ускладиштену процедуру у ПостгреСКЛ-у. Потребно је само да разумете синтаксу коју треба да пратите, а затим да дефинишете своју логику за ускладиштену процедуру. Одатле позовите ускладиштену процедуру и проверите да ли се извршила како је очекивано. Овај пост је објаснио сачуване процедуре у ПостгреСКЛ-у и пружио примере како да их креирате.