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:
- Očuvanje integriteta podataka: automatska provera ili modifikacija podataka pri unosu/izmeni.
- Audit: beleženje informacija o promenama podataka u posebnu tabelu logova.
- Sinhronizacija podataka: automatsko ažuriranje povezanih tabela.
- 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.