Triggers vs Cursors
Sa isang database, ang trigger ay isang procedure (code segment) na awtomatikong isinasagawa kapag may ilang partikular na kaganapan na nangyari sa isang table/view. Sa iba pang gamit nito, pangunahing ginagamit ang mga trigger para sa pagpapanatili ng integridad sa isang database. Ang cursor ay isang control structure na ginagamit sa mga database upang dumaan sa mga record ng database. Ito ay halos kapareho sa iterator na ibinigay ng maraming programming language.
Ano ang Mga Trigger?
Ang trigger ay isang pamamaraan (segment ng code) na awtomatikong isinasagawa kapag may ilang partikular na kaganapan na nangyari sa isang talahanayan/view ng isang database. Sa iba pang gamit nito, pangunahing ginagamit ang mga trigger para sa pagpapanatili ng integridad sa isang database. Ginagamit din ang mga trigger para sa pagpapatupad ng mga panuntunan sa negosyo, pag-audit ng mga pagbabago sa database at pagkopya ng data. Karamihan sa mga karaniwang trigger ay ang Data Manipulation Language (DML) na trigger na nati-trigger kapag ang data ay manipulahin. Sinusuportahan ng ilang database system ang mga non-data trigger, na nati-trigger kapag nangyari ang mga event ng Data Definition Language (DDL). Ang ilang mga halimbawa ay mga trigger na pinapagana kapag ginawa ang mga talahanayan, habang nagaganap ang mga commit o rollback na operasyon, atbp. Ang mga trigger na ito ay maaaring gamitin para sa pag-audit. Sinusuportahan ng Oracle database system ang mga schema level trigger (ibig sabihin, ang mga trigger ay pinapagana kapag ang database schema ay binago) tulad ng After Creation, Before Alter, After Alter, Before Drop, After Drop, atbp. Ang apat na pangunahing uri ng trigger na sinusuportahan ng Oracle ay Row Level trigger, Nagti-trigger ang Antas ng Column, nagti-trigger ang Bawat Uri ng Row, at nagti-trigger ang Para sa Bawat Uri ng Pahayag.
Ano ang Cursors?
Ang cursor ay isang control structure na ginagamit sa mga database upang dumaan sa mga record ng database. Ito ay halos kapareho sa iterator na ibinigay ng maraming mga programming language. Bilang karagdagan sa pagtawid sa mga talaan sa isang database, pinapadali din ng mga cursor ang pagkuha ng data, pagdaragdag at pagtanggal ng mga tala. Sa pamamagitan ng pagtukoy sa tamang paraan, ang mga cursor ay maaari ding gamitin upang tumawid pabalik. Kapag ang isang SQL query ay nagbalik ng isang hanay ng mga hilera, ang mga iyon ay aktwal na pinoproseso gamit ang mga cursor. Ang isang cursor ay kailangang ideklara at magtalaga ng isang pangalan, bago ito magamit. Pagkatapos ay kailangang buksan ang cursor gamit ang OPEN command. Ilalagay ng operasyong ito ang cursor bago ang unang hanay ng resultang set ng mga tala. Pagkatapos ay kailangang gawin ng cursor ang FETCH na operasyon upang aktwal na makakuha ng isang hilera ng data sa application. Sa wakas, kailangang isara ang cursor gamit ang CLOSE operation. Maaaring buksan muli ang mga saradong cursor.
Ano ang pagkakaiba ng Mga Trigger at Cursor?
Ang trigger ay isang procedure (code segment) na awtomatikong isinasagawa kapag may ilang partikular na kaganapan na nangyari sa isang table/view ng isang database, habang ang cursor ay isang control structure na ginagamit sa mga database para dumaan sa mga record ng database. Ang isang cursor ay maaaring ideklara at gamitin sa loob ng isang trigger. Sa ganoong sitwasyon, ang pahayag na deklarasyon ay nasa loob ng trigger. Kung gayon ang saklaw ng cursor ay magiging limitado sa trigger na iyon. Sa loob ng isang trigger, kung ang isang cursor ay idineklara sa isang ipinasok o isang tinanggal na talahanayan, ang naturang cursor ay hindi maa-access mula sa isang nested trigger. Kapag nakumpleto na ang isang trigger, ang lahat ng cursor na ginawa sa loob ng trigger ay aalisin sa pagkakatalaga.