Triggers

PostgreSQL 🟡 Mid

Definition

Fonctions executees automatiquement en reponse a un evenement (INSERT, UPDATE, DELETE) sur une table. Peuvent etre BEFORE ou AFTER et operent par ligne (FOR EACH ROW) ou par instruction.

Analogie

Un detecteur de mouvement qui declenche automatiquement une alarme quand quelqu'un entre.

Exemple de code

CREATE FUNCTION update_timestamp()
RETURNS trigger AS $$
BEGIN
  NEW.updated_at = NOW();
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER set_timestamp
  BEFORE UPDATE ON users
  FOR EACH ROW EXECUTE FUNCTION update_timestamp();

Cas d'usage

Mettre a jour automatiquement un timestamp, maintenir un audit log ou propager des modifications.

Anti-pattern

Creer des cascades de triggers qui se declenchent mutuellement, rendant le flux imprevisible.
#sgbd#interview#database#postgresql