Les événements de MySQL

J’ai été plutôt surpris de découvrir dans MySQL une fonctionnalité méconnue, très souvent remplacée par des solutions complexes à base de {PHP|Python|Java|Ruby|…} et de cron ; l’objet EVENT. Il permet de lancer des « taches planifiées » concernant les tables sans avoir à recourir à des outils externes et de manière très très simple …L’utilisation d’une telle fonction est multiple, nous pouvons l’utiliser pour supprimer d’anciens bons de commandes  ou les sessions des utilisateurs (si ces informations sont contenues en base de données).

On commence par activer la fonctionnalité avec la commande:

SET GLOBAL event_scheduler = ON;

Par exemple pour supprimer, chaque semaine, tous les utilisateurs qui sont inactifs il suffit d’écrire:

CREATE EVENT supprimerUtilisateursInactifs
ON SCHEDULE EVERY 1 WEEK
DO
DELETE FROM utilisateurs WHERE actif = false;

Les événements sont visibles avec la commande:

SHOW EVENTS;

Naturellement il est possible de faire bien plus, notamment de lancer des procédures stockées comme le montre la documentation à ce sujet : Doc MySQL 5.1 Event.

En espérant que cette petite découverte puisse vous être utile.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s