Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== D4-TP01 : Gestion d'événements en SQL ====== ==== A) Nettoyage automatique des logs ==== Créer une table logs pour tracer les logs : <code> 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); </code> <bootnote question>Créer un événement qui supprime automatiquement chaque jour les lignes de la table logs de plus de 30 jours.</bootnote> ==== B) Notification quotidienne ==== <code> -- Table notifications DROP TABLE IF EXISTS notifications; CREATE TABLE notifications ( idNotif INT AUTO_INCREMENT PRIMARY KEY, message VARCHAR(100), dateNotif DATETIME DEFAULT CURRENT_TIMESTAMP ); </code> <bootnote question>Créer un événement qui insère chaque jour à 8h un message 'Notification quotidienne' dans une table notifications.</bootnote> ==== C) Calcul périodique de statistiques ==== <code> -- 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 ); </code> <bootnote question>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.</bootnote> ==== D) Traitement différé ==== <bootnote question>Ajouter une ligne dans la table evenement dans 10 minutes.</bootnote> ==== Étape 4 : Vérification et suivi ==== <code> SHOW EVENTS; -- lister les événements </code> Vérifiez leur état (ENABLE / DISABLE). <bootnote warning>Observez les lignes supprimés dans la table logs, les lignes créées dans evenement, notifications, stats_commandes.</bootnote> <bootnote question>En quoi ces événements peuvent-ils être utiles dans une vraie entreprise ?</bootnote> d4/tp01.txt Dernière modification : 2025/10/02 16:32de dthevenot