Sobes.tech
Junior

Co jsou to triggery v relační databázi?

sobes.tech AI

Odpověď od AI

Trigger je speciální typ uložené procedury, která se automaticky spouští jako reakce na určitý událost v tabulce nebo pohledu databáze.

Hlavní události, které spouštějí trigger:

  • INSERT: Vložení nového řádku.
  • UPDATE: Změna existujícího řádku.
  • DELETE: Odstranění řádku.

Triggery se mohou spouštět před (BEFORE) nebo po (AFTER) vykonání události.

Příklady použití triggerů:

  • Automatická aktualizace polí (například datum poslední změny).
  • Kontrola integrity dat.
  • Záznam změn (logování).
  • Kaskádová aktualizace nebo odstranění souvisejících dat.
-- Příklad vytvoření triggeru AFTER INSERT (fiktivní syntaxe)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();

-- Příklad funkce volané triggerem
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:

  • Centralizace podnikové logiky.
  • Automatizace rutinních úkolů.
  • Zvýšení integrity dat.

Nevýhody:

  • Obtížnost ladění.
  • Potenciální vliv na výkon.
  • Složitost aplikační logiky, protože část je přesunuta na úroveň databáze.