Triggers
PostgreSQL 🟡 MidDefinition
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.