On peut utiliser un langage de programmation associé à un SGBD, la programmation d’événements (events) en est une illustration. Elle permet de planifier dans le temps l'exécution d'un traitement à renouveler éventuellement de façon périodique.
MariaDB propose plusieurs types de données pour gérer les dates et heures :
Note: Ressource utile : https://mariadb.com/kb/en/date-time-functions/
Quelques fonctions utiles :
Exemples avec des valeurs de dates précises :
La programmation d’événements (events) permet de planifier dans le temps l'exécution d'un traitement à renouveler éventuellement de façon périodique. Ils nécessitent que le planificateur d’événements (event_scheduler) soit activé.
Voici quelques exemples de tâches que vous pourrez mettre en œuvre, sans avoir à passer par des artifices de programmation de plus ou moins bonnes qualités. Vous pourrez, par exemple :
Attention:
Vérification : SHOW VARIABLES LIKE 'event_scheduler';
Activation : SET GLOBAL event_scheduler = ON;
CREATE EVENT [IF NOT EXISTS] [nom_base].nom_evenement ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT 'commentaire'] DO instructions_sql; ===== ===== --Exemple CREATE EVENT nom_evenement ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP DO instruction_sql;
schedule précise la planification (instant initial, période, instant final) selon le modèle suivant :
N° | clause ON SCHEDULE | l'événement s'exécute … (à compléter) |
---|---|---|
1 | AT '2019-10-2 10:59:00' | |
2 | AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR | |
3 | AT CURRENT_TIMESTAMP + INTERVAL 3 WEEK + INTERVAL 2 DAY | |
4 | EVERY 1 DAY STARTS '2019-10-2 4:00:00' | |
5 | EVERY 3 MONTH STARTS CURRENT_TIMESTAMP + INTERVAL 1 WEEK | |
6 | EVERY 12 HOUR STARTS CURRENT_TIMESTAMP + INTERVAL 30 MINUTE ENDS CURRENT_TIMESTAMP + INTERVAL 4 WEEK |