You are on page 1of 1

10 Okidači (triggers) Page 33

10 Okidači (triggers)
Okidači (ili trigeri) su praktično procedure koje se izvršavaju u određenom trenutku. Procedure (iz prethodne lekcije)
se izvršavaju sa EXEC naredbom. Kod trigera, pohranjeni SQL kod se izvršava nakon što je došlo do promjene
podataka u nekoj tabeli. To znači da imamo tri vrste trigera: INSERT, UPDATE i DELETE trigere i to BEFORE i
AFTER. Znači može biti BEFORE INSERT, AFTER INSERT, BEFORE UPDATE itd.
Sintaksa za kreiranje trigera je:
CREATE TRIGGER <naziva_okidaca>
(BEFORE | AFTER) [ INSERT | UPDATE | DELETE]
ON <ime_tabele>
[ FOR EACH ROW | FOR EACH COLUMN ]
<kod>

naziv_okidaca – jedinstveno ime okidača


ime_tabele – naziv tabele za koju se kreira okidač
kod – SQL kod koji će se izvršiti
BEFORE | AFTER – određuje da li će se kod izvršiti prije ili poslije promjene podataka
INSERT | UPDATE | DELETE – određuje o kojoj promjeni podataka se radi

Primjer:

CREATE TRIGGER logger


AFTER UPDATE
ON ucenik
INSERT INTO log ( ....

Gornji primjer INSERTuje red u log tabelu nakon (AFTER) što se napravi neka izmjena (UPDATE) podataka
u tabeli ucenik.

Prednosti trigera su:


1. jednostavna implementacija poslovnih pravila
2. jednostavna validacija (provjera ispravnosti) podataka
3. daju dodatnu mogućnost da se održi integritet podataka

Problemi sa trigerima su:


1. moguća validacija podatak ima ograničenja
2. povećavaju vrijeme izvršenja naredbi
3. mogu biti problematični kod debugiranja jer se izvršavaju unutar BP i nevidljivi su za aplikaciju

BAZE PODATAKA

You might also like