Sobes.tech
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.