Junior
Šta su triggeri u relacionoj bazi podataka?
sobes.tech АИ
Одговор од АИ
Trigger je poseban tip skladištene procedure koja se automatski izvršava kao odgovor na određeni događaj u tabeli ili prikazu baze podataka.
Glavni događaji koji pokreću trigger:
INSERT: Umetanje novog reda.UPDATE: Izmena postojećeg reda.DELETE: Brisanje reda.
Triggeri se mogu aktivirati pre (BEFORE) ili posle (AFTER) izvršenja događaja.
Primeri korišćenja triggera:
- Automatsko ažuriranje polja (npr. datum poslednje izmene).
- Provera integriteta podataka.
- Evidentiranje promena (logovanje).
- Kaskadno ažuriranje ili brisanje povezanih podataka.
-- Primer kreiranja AFTER INSERT triggera (fikcijska sintaksa)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();
-- Primer funkcije koja se poziva triggerom
CREATE FUNCTION log_user_insert() RETURNS TRIGGER AS $$
BEGIN
INSERT INTO audit_logs (table_name, operation, timestamp, new_data)
VALUES ('users', 'INSERT', NOW(), row_to_json(NEW));
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
Prednosti:
- Centralizacija poslovne logike.
- Automatizacija rutinskih zadataka.
- Povećanje integriteta podataka.
Nedostaci:
- Teškoće u otklanjanju grešaka.
- Potencijalni uticaj na performanse.
- Složenost logike aplikacije, jer je deo prenesen na nivo baze podataka.