![](http://gadget-info.com/img/difference-between/682/difference-between-trigger.jpg)
Razgovarajmo o još nekim razlikama između Trigger-a i Procedura uz pomoć dolje prikazane usporedne tablice.
Tablica usporedbe
Osnova za usporedbu | okidači | Postupci |
---|---|---|
Osnovni, temeljni | Oni se automatski izvršavaju prilikom pojavljivanja određenog događaja. | Mogu se izvršavati kad god je potrebno. |
zvanje | Okidači se ne mogu pozvati unutar postupka. | No, možete pozvati postupak unutar okidača. |
Parametar | Ne možemo proslijediti parametre na okidače. | Parametre možemo proslijediti procedurama. |
Povratak | Okidač nikada ne vraća vrijednost izvršenja. | Postupak može vratiti vrijednost / s na izvršenje. |
Definicija okidača
Okidač je kao procedura koja se automatski izvršava nakon pojavljivanja određenog događaja. Kao i postupak, okidač ne mora biti izričito pozvan. Kreiraju se okidači za izvođenje nekog zadatka kao odgovor na pojavu nekog određenog događaja.
Okidač se može pozvati kao odgovor na DDL izjave (DELETE, INSERT ili UPDATE) ili DML izjave (DELETE, INSERT ili UPDATE) ili na neke operacije baze podataka (SERVERERROR, LOGON, LOGOFF, STARTUP ili SHUTDOWN).
Okidač se sastoji od tri komponente:
- Događaj : Događaj je događaj nekog incidenta koji će uzrokovati izvršenje okidača. Okidač se može narediti izvršenje bilo PRIJE događaja ili se može narediti da se izvrši NAKON izvršenja događaja.
- Uvjet : To je opcijski dio okidača. Ako se ne spominje, okidač će se izvršiti kako se dogodi navedeni događaj. Ako je uvjet naveden, tada će provjeriti pravila kako bi odredio treba li okidač izvršiti.
- Akcija : Akcija je skup SQL izraza koji će se izvršiti na izvršenju okidača.
U nastavku se govori o općem obliku stvaranja događaja:
STVORITE TRIGGER PRIJE / POSLIJE AKCIJE;
Ovdje uvjet je opcionalan.
Definicija postupaka
Postupak se može uzeti kao programska jedinica, stvorena za izvođenje nekog zadatka i pohranjena u bazu podataka. Oni se pozivaju SQL naredbom kad god je to potrebno. Procedure su kao korisnički definirane funkcije koje definiraju programeri. Postupci se mogu pozivati pomoću CALL ili EXECUTE .
Postupci su korisni u sljedećim situacijama:
- Ako postupak zahtijeva nekoliko drugih aplikacija, može se pohraniti na poslužitelju tako da se može pozvati bilo kojom aplikacijom. To će smanjiti napor dupliciranja postupka iz jedne baze podataka u drugu i također poboljšati modularnost softvera.
- Kako se postupak izvršava na poslužitelju, to će smanjiti prijenos podataka i smanjiti troškove komunikacije.
- Postupci se mogu koristiti za provjeru složenih ograničenja koja su izvan snage okidača.
Razgovarajmo o općem obliku izrade postupka:
STVORITE POSTUPAK () POVRATAK;
Ovdje su parametri i lokalne izjave neobavezni. Oni se spominju samo kada su potrebni. Izjava u nastavku opisuje pozivanje postupaka.
CALL ();
Ključne razlike između okidača i postupka
- Osnovna razlika između okidača i procedure je u tome što je okidač izraz koji se automatski poziva kada se dogodi događaj. S druge strane, postupak se poziva kad god je to potrebno.
- Može se definirati postupak unutar okidača. No, okidač se nikada ne definira unutar postupka jer se okidač mora automatski pozvati prilikom pojavljivanja bilo kojeg događaja.
- Parametre možemo proslijediti procedurama, ali ne možemo proći parametre koji se pokreću jer ih mi ne pozivamo.
- Postupak može vratiti vrijednosti parametara ili kod, ali okidač ne može.
Zaključak:
Okidači su korisni, ali se izbjegavaju ako za njih postoji alternativa, jer povećava složenost podataka. Ponekad su okidači također zamjena odgovarajućim postupkom.