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.