Arutagem veel mõningaid erinevusi Trigeri ja protseduuri vahel allpool toodud võrdluskaardi abil.
Võrdluskaart
Võrdluse alus | Käivitajad | Menetlused |
---|---|---|
Põhiline | Need täidetakse automaatselt sündmuse toimumise korral. | Neid saab täita igal ajal. |
Helistamine | Käivitajaid ei saa protseduuri sees nimetada. | Kuid võite helistada protseduurile päästiku sees. |
Parameeter | Me ei saa parameetreid käivitada. | Me saame protseduuridele parameetreid edastada. |
Tagasi | Trigger ei tagasta kunagi täitmisele väärtust. | Menetlus võib tagastada täitmisväärtuse. |
Trigeri mõiste
Käivitaja on nagu protseduur, mis täidetakse automaatselt teatud sündmuse toimumise korral. Sarnaselt protseduurile ei ole päästikut vaja selgesõnaliselt nimetada. Luuakse käivitajad, et täita mõningaid ülesandeid vastuseks teatud sündmuse toimumisele.
Lüliti saab kasutada vastuseks DDL- avaldustele (DELETE, INSERT või UPDATE) või DML- avaldustele (DELETE, INSERT või UPDATE) või mõnele andmebaasi operatsioonile (SERVERERROR, LOGON, LOGOFF, STARTUP või SHUTDOWN).
Käivitaja koosneb kolmest komponendist, nagu allpool kirjeldatud:
- Sündmus : sündmus on mõne intsidendi esinemine, mis põhjustab käivitaja käivitamist. Löögi saab tellida kas enne või pärast sündmuse toimumist või juhul, kui seda saab tellida pärast sündmuse täitmist.
- Seisund : see on päästiku valikuline osa. Kui nimetatud sündmuse toimumise ajal ei ole mainitud käivitamist käivitatud. Kui tingimus on täpsustatud, kontrollib see reegleid, et teha kindlaks, kas käivitus tuleb käivitada.
- Meede : Toiming on seadistatud SQL-avaldused, mis täidetakse käivitaja käivitamisel.
Sündmuse loomise üldist vormi käsitletakse allpool:
CREATE TRIGGER ENNE TINGIMUSTEGEVUSE JÄRGI / PÄRAST;
Siin on tingimus valikuline.
Menetluste määratlus
Protseduuri võib võtta programmiüksuseks, mis on loodud mõne ülesande täitmiseks ja see salvestatakse andmebaasi. Neid viitab vajadusel SQL-avaldus. Protseduurid on sarnased kasutaja poolt määratletud funktsioonidega, mille määravad arendajad. Menetlusi saab kasutada CALL või EXECUTE abil .
Menetlused on kasulikud järgmistes olukordades:
- Kui protseduuri nõuab mitu muud rakendust, siis saab seda serverisse salvestada, et neid saaks kasutada mis tahes rakendus. See vähendab protseduuri dubleerimist ühest andmebaasist teise ja parandab ka tarkvara modulaarsust.
- Kuna protseduur toimub serveris, vähendab see andmeedastust ja vähendab ka sidekulusid.
- Protseduure saab kasutada keerukate piirangute kontrollimiseks, mis ei ole vallandada.
Arutagem menetluse loomise üldist vormi:
CREATE PROCEDURE () TAGASIMAKSED;
Siin on parameetrid ja kohalikud deklaratsioonid valikulised. Neid nimetatakse ainult siis, kui need on vajalikud. Alljärgnev avaldus kirjeldab protseduuride kutsumist.
HELISTAMA () ;
Põhilised erinevused käivitaja ja protseduuri vahel
- Peamine erinevus käiviti ja protseduuri vahel on see, et käivitaja on avaldus, mis käivitub automaatselt sündmuse toimumise ajal. Teisest küljest tuginetakse menetlusele alati, kui see on vajalik.
- Protseduuri saab määrata päästiku sees. Kuid päästik ei ole kunagi protseduuri sees defineeritud, sest käivitaja peab iga sündmuse ilmnemisel automaatselt pöörduma.
- Me võime protseduuridele parameetreid edastada, kuid me ei saa parameetreid käivitada, kuna meid ei viita.
- Protseduur võib parameetri väärtusi või koodi tagasi saata, kuid käivitus ei saa.
Järeldus:
Käivitajad on kasulikud, kuid neid välditakse, kui neile on olemas alternatiiv, kuna see suurendab andmete keerukust. Mõnikord asendab ka vallandajaid sobiva protseduuriga.