====== D4-TP01 : Gestion d'événements en SQL ====== ==== A) Nettoyage automatique des logs ==== Créer une table logs pour tracer les logs : DROP TABLE IF EXISTS logs; CREATE TABLE logs ( idLog INT AUTO_INCREMENT PRIMARY KEY, utilisateur VARCHAR(50), date_connexion DATETIME ); INSERT INTO logs (utilisateur, date_connexion) VALUES ('Medhi', NOW() - INTERVAL 5 DAY), ('Emile', NOW() - INTERVAL 40 DAY), ('Steve', NOW() - INTERVAL 15 DAY), ('Morgann', NOW() - INTERVAL 20 DAY), ('Salome', NOW() - INTERVAL 70 DAY); Créer un événement qui supprime automatiquement chaque jour les lignes de la table logs de plus de 30 jours. ==== B) Notification quotidienne ==== -- Table notifications DROP TABLE IF EXISTS notifications; CREATE TABLE notifications ( idNotif INT AUTO_INCREMENT PRIMARY KEY, message VARCHAR(100), dateNotif DATETIME DEFAULT CURRENT_TIMESTAMP ); Créer un événement qui insère chaque jour à 8h un message 'Notification quotidienne' dans une table notifications. ==== C) Calcul périodique de statistiques ==== -- Table commandes DROP TABLE IF EXISTS commandes; CREATE TABLE commandes ( idCommande INT AUTO_INCREMENT PRIMARY KEY, client VARCHAR(50), dateCommande DATE ); INSERT INTO commandes (client, dateCommande) VALUES ('alice', NOW() - INTERVAL 3 DAY), ('bob', NOW() - INTERVAL 10 DAY), ('charlie', NOW() - INTERVAL 25 DAY), ('alice', NOW() - INTERVAL 40 DAY), ('bob', NOW() - INTERVAL 50 DAY), ('charlie', NOW() - INTERVAL 70 DAY), ('alice', NOW() - INTERVAL 85 DAY); -- Table stats_commandes DROP TABLE IF EXISTS stats_commandes; CREATE TABLE stats_commandes ( idStat INT AUTO_INCREMENT PRIMARY KEY, semaine INT, total INT, dateCalcul DATETIME DEFAULT CURRENT_TIMESTAMP ); Créez un événement qui calcule chaque semaine le nombre total de commandes et insère le résultat dans une table stats_commandes. ==== D) Traitement différé ==== Ajouter une ligne dans la table evenement dans 10 minutes. ==== Étape 4 : Vérification et suivi ==== SHOW EVENTS; -- lister les événements Vérifiez leur état (ENABLE / DISABLE). Observez les lignes supprimés dans la table logs, les lignes créées dans evenement, notifications, stats_commandes. En quoi ces événements peuvent-ils être utiles dans une vraie entreprise ?