Sobes.tech
Junior

Šta je trigger?

sobes.tech АИ

Одговор од АИ

Trigera je posebna spremljena procedura u bazi podataka koja se automatski izvršava kada dođe do određenog događaja.

Događaji koji obično aktiviraju trigere uključuju:

  • INSERT: dodavanje novih redova u tabelu.
  • UPDATE: izmena postojećih redova u tabeli.
  • DELETE: brisanje redova iz tabele.

Trigera mogu biti aktivirana u različito vreme u odnosu na događaj:

  • BEFORE: pre izvršenja događaja.
  • AFTER: nakon izvršenja događaja.
  • INSTEAD OF: umesto izvršenja događaja (često se koristi sa pogledima).

Primeri korišćenja trigera:

  1. Očuvanje integriteta podataka: automatska provera ili modifikacija podataka pri unosu/izmeni.
  2. Audit: beleženje informacija o promenama podataka u posebnu tabelu logova.
  3. Sinhronizacija podataka: automatsko ažuriranje povezanih tabela.
  4. Izvršavanje složenih poslovnih pravila: iniciranje dodatnih radnji pod određenim uslovima.

Trigera se definišu na nivou tabele i mogu referisati na stare i nove vrednosti reda koji je izmenjen.

-- Primer sintakse (SQL)
CREATE TRIGGER audit_log
AFTER INSERT ON users
FOR EACH ROW
BEGIN
    INSERT INTO audit (user_id, action, timestamp)
    VALUES (NEW.id, 'insert', NOW());
END;

Važno je koristiti trigere sa oprezom, jer oni mogu otežati otklanjanje grešaka i uticati na performanse baze podataka.