Sobes.tech
Junior

Čo sú to triggere v relačnej databáze?

sobes.tech AI

Odpoveď od AI

Trigger je špeciálny typ uloženého postupu, ktorý sa automaticky vykonáva ako reakcia na určitú udalosť v tabuľke alebo pohľade databázy.

Hlavné udalosti, ktoré spúšťajú trigger:

  • INSERT: Vloženie nového riadku.
  • UPDATE: Zmena existujúceho riadku.
  • DELETE: Vymazanie riadku.

Trigger môže byť aktivovaný pred (BEFORE) alebo po (AFTER) vykonaní udalosti.

Príklady použitia triggerov:

  • Automatická aktualizácia polí (napríklad dátumu poslednej zmeny).
  • Kontrola integrity dát.
  • Záznam zmien (logovanie).
  • Kaskádová aktualizácia alebo vymazanie súvisiacich dát.
-- Príklad vytvorenia AFTER INSERT triggeru (fiktívna syntax)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();

-- Príklad funkcie volanej 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;

Výhody:

  • Centralizácia podnikovej logiky.
  • Automatizácia rutinných úloh.
  • Zvýšenie integrity dát.

Nevýhody:

  • Ťažkosti pri ladení.
  • Potenciálny vplyv na výkon.
  • Zložitosť logiky aplikácie, pretože časť je presunutá na úroveň databázy.