← Tous les exercices
Un trigger AFTER INSERT qui journalise
Partie 3 · ★★
Traçabilité : les opérations importantes doivent laisser une trace. Un trigger AFTER INSERT écrit dans log_metier après chaque nouvelle annonce, sans que l'application ait à y penser. Dans le corps du trigger, la nouvelle ligne s'appelle NEW.
Complète le trigger pour qu'il enregistre l'action 'INSERT' et l'identifiant de l'annonce insérée.
import sqlite3 con = sqlite3.connect(":memory:", isolation_level=None) con.executescript(""" CREATE TABLE marche(id INTEGER PRIMARY KEY, titre TEXT); CREATE TABLE log_metier(id INTEGER PRIMARY KEY, action TEXT, marche_id INTEGER); CREATE TRIGGER trg_log_insert ___ INSERT ON marche BEGIN INSERT INTO log_metier(action, marche_id) VALUES ('INSERT', ___.id); END; """) con.execute("INSERT INTO marche(titre) VALUES ('Classes modulaires')") con.execute("INSERT INTO marche(titre) VALUES ('Base vie')") rows = con.execute("SELECT action, marche_id FROM log_metier ORDER BY id").fetchall()
Ctrl/⌘+Entrée