Sobes.tech
Junior

Ce sunt trigger-urile într-o bază de date relațională?

sobes.tech AI

Răspuns de la AI

Un trigger este un tip special de procedură stocată care se execută automat ca răspuns la un anumit eveniment într-un tabel sau vizualizare a bazei de date.

Principalele evenimente care declanșează un trigger:

  • INSERT: Inserarea unui rând nou.
  • UPDATE: Modificarea unui rând existent.
  • DELETE: Ștergerea unui rând.

Trigger-urile pot fi activate înainte (BEFORE) sau după (AFTER) executarea evenimentului.

Exemple de utilizare a trigger-urilor:

  • Actualizarea automată a câmpurilor (de exemplu, data ultimei modificări).
  • Verificarea integrității datelor.
  • Înregistrarea modificărilor (logare).
  • Actualizarea sau ștergerea în cascadă a datelor asociate.
-- Exemplu de creare a unui trigger AFTER INSERT (syntaxă fictivă)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();

-- Exemplu de funcție apelată de trigger
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;

Avantaje:

  • Centralizarea logicii de business.
  • Automatizarea sarcinilor repetitive.
  • Îmbunătățirea integrității datelor.

Dezavantaje:

  • Dificultăți în depanare.
  • Impact potențial asupra performanței.
  • Complexitate crescută a logicii aplicației, deoarece o parte din ea este mutată la nivelul bazei de date.