Sobes.tech
Junior

Qu'est-ce que les triggers dans une base de données relationnelle ?

sobes.tech IA

Réponse de l'IA

Un déclencheur est un type spécial de procédure stockée qui s'exécute automatiquement en réponse à un événement spécifique dans une table ou une vue de la base de données.

Les principaux événements qui déclenchent un déclencheur :

  • INSERT : insertion d'une nouvelle ligne.
  • UPDATE : modification d'une ligne existante.
  • DELETE : suppression d'une ligne.

Les déclencheurs peuvent se déclencher avant (BEFORE) ou après (AFTER) l'exécution de l'événement.

Exemples d'utilisation des déclencheurs :

  • Mise à jour automatique des champs (par exemple, la date de la dernière modification).
  • Vérification de l'intégrité des données.
  • Enregistrement des modifications (journalisation).
  • Mise à jour ou suppression en cascade des données liées.
-- Exemple de création d'un déclencheur AFTER INSERT (syntaxe fictive)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();

-- Exemple de fonction appelée par le déclencheur
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;

Avantages :

  • Centralisation de la logique métier.
  • Automatisation des tâches routinières.
  • Amélioration de l'intégrité des données.

Inconvénients :

  • Difficulté de débogage.
  • Impact potentiel sur la performance.
  • Complexité accrue de la logique de l'application, car une partie est transférée au niveau de la base de données.