SQL – Okidač (Trigger)

Trigger, rule ili okidač predstavlja jedan od mehanizama za proveru uslova integriteta baze podataka. Okidač je jedna programska procedura sistema za upravljanje bazama podataka (SUBP), koja se aktivira određenim događajem, a ti događaji mogu biti:

  • upis nove zapisa u tabelu
  • brisanje određenog zapisa
  • modifikacija postojećeg zapisa
Okidač u stvari pokreće određenu aktivnost nad bazom, uvek kada se desi jedan od navedenih događaja. Tačnije rečeno, SUBP inicira izvršenje okidača, odmah po nastajanju događaja. Rad okidača je van kontrole aplikacionog programa koji je vezan na SUBP, a obavezno se izvršava.

Kao primer navešćemo situaciju kada je okidač kreiran tako da kada se iz programa izbrišu podaci o nekom kupcu, automatski se izbrišu i sve njegove narudžbine. Na ovaj način održali smo propisane odnose između podataka različitih entiteta (u ovom slučaju entiteta „Kupac“ i entiteta „Narudzba“).

Sintaksa okidača je sledeća:


CREATE [OR REPLACE] TRIGGER /naziv_okidaca/
/tip okidaca/ ON /naziv tabele/
BEGIN
/izvrsne_instrukcije_okidaca/
END

Naravno, potpuna sintaksa je mnogo složenija, ali i ovo je dovoljno da vidimo šta su okidači i kako deluju. Zapazite klauzulu “ OR REPLACE“, ona omogućava da postojeći okidač sa istim imenom zamenimo novim. Tipovi okidača mogu biti: BEFORE, AFTER i INSTEAD OF.

Evo i primera okidača, uzmimo da imamo tabelu „Dobavljac-Artikal“, okidač će vršiti proveru pre upisa u datu tabele, da li dati dobavljač uopšte nabavlja dati proizvod:


CREATE TRIGGER ubaci_Dobavljac_Artikl
BEFORE INSERT ON Dobavljac_Artikl
FOR EACH ROW
BEGIN
RULE_DOBAVLJA (:NEW.D, :NEW.A)
END ubaci_Dobavljac_Artikl

Primer je realizovan u okruženju SUBP „Oracle“.

Pratite Krstaricu na www.krstarica.com