Showing entries 1 to 8
Displaying posts with tag: Event Scheduler (reset)
Le programmateur d’événements ( Event Scheduler ) (part 6/6)

(<- précédent)

Limitations et restrictions

Certaines commandes MySQL ne sont pas permises dans un événement.

Verrouiller une table est interdit: LOCK TABLES, UNLOCK TABLES.

Il n’est malheureusement pas possible de charger des données avec la commande LOAD DATA INFILE.

Les requêtes préparées (PREPARED STATEMENT) ne peuvent être créées dans un événement.

La récursivité.

Un événement ne peut être créé, modifié ou supprimé par un déclencheur, une procédure stockée ou un autre événement.

De plus, on ne peut pas créer, modifier ou supprimer un déclencheur ou une procédure stockée dans un événement.

La suppression d’une base de données (DROP DATABASE) entraine la …

[Lire plus]
Le programmateur d’événements ( Event Scheduler ) (part 5/6)

(<- précédent)

Appel d’une procédure stockée

Il est possible d’appeler des procédures stockées dans un événement.

mysql> CREATE EVENT `_event`.`appel_ps` ON SCHEDULE AT CURRENT_TIMESTAMP DO /*Appel de la procédure stockée*/ CALL pro_stock.insert_profil(’Olivier’, ‘DASINI’, ‘Orange’);

Archivage périodique des données

Beaucoup d’entreprises sont obligées de conserver d’énormes volumes de données historiques sur leurs serveurs de bases de données. Un moyen de réduire l’espace occupé est d’utiliser le moteur de stockage ARCHIVE. Ce moteur de table, compresse automatiquement les données qui n’occupent alors plus que 30% de leur taille originale.

mysql> CREATE TABLE _event.archive_event ( moment timestamp, fois tinyint unsigned, …

[Lire plus]
Le programmateur d’événements ( Event Scheduler ) (part 4/6)

(<- précédent)


Quelques exemples d’évènements

Insertions de données dans une table, toutes les 30 secondes

mysql> SELECT * FROM _event.insert_event ; mysql> DELIMITER €€ mysql> CREATE EVENT `_event`.`second_event` ON SCHEDULE EVERY 30 SECOND DO BEGIN /*selectionne la val maximale de la colonne fois. Si elle vaut NULL alors retourne la valeur 0 dans la variable @fois*/ SELECT if(max(fois),max(fois)+1,1) INTO @fois FROM _event.insert_event; /*Insertion des données dans la table*/ INSERT INTO _event.insert_event (moment, fois, action) VALUES (now(), @fois, concat(’Execution ‘, @fois, »  de l’event» )); END €€ mysql> DELIMITER ;

Créer une vue matérialisée

Le concept de vue matérialisée n’est pas implémenté dans MySQL. …

[Lire plus]
Le programmateur d’événements ( Event Scheduler ) (part 3/6)

(<- précédent)

Gérer les évènements

MySQL propose plusieurs méthodes pour visualiser les évènements. La méthode la plus pratique consiste à aller chercher l’information dans la table event de la base de données des méta-données information_schema:

mysql> SELECT * FROM information_schema.EVENTS; Empty set (0.00 sec)

L’évènement premier_event créé précédemment n’y apparaît pas. C’est tout à fait normal, un événement à exécution unique n’est par défaut pas conservé par MySQL. Modifions notre événement pour qu’il puisse en rester une trace après son exécution:

mysql> CREATE EVENT _event.premier_event_persistant ON SCHEDULE AT CURRENT_TIMESTAMP ON COMPLETION PRESERVE COMMENT ‘Insertion des données dans la …

[Lire plus]
Le programmateur d’événements ( Event Scheduler ) (part 2/6)

(<- précédent)

Créer un événement

Pour créer notre premier événement, un coup d’oeil dans la documentation de MySQL nous donne les informations suivantes:

CREATE
[DEFINER = { user | CURRENT_USER }]
EVENT
[IF NOT EXISTS]
nom_évènement
ON SCHEDULE moment
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'commentaire']
DO requêtes_sql;
moment:
AT timestamp [+ INTERVAL intervalle] ...
| EVERY interval
[STARTS timestamp [+ INTERVAL intervalle] ...]
[ENDS timestamp [+ INTERVAL intervalle] ...]

Les clauses entre crochets sont optionnelles, pour nous faciliter la tâche, ignorons …

[Lire plus]
Le programmateur d’événements ( Event Scheduler ) (part 1/6)

Poursuivons l’exploration des fonctionnalités phares de MySQL 5.1, et penchons-nous sur le programmateur d’évènements (Event Scheduler) présent depuis MySQL 5.1.6 . Cet article est rédigé avec la version 5.1.22 de MySQL.

Qu’est-ce qu’un programmateur d’évènements ?

Le programmateur d’événements ou « event scheduler » offre la possibilité, à l’administrateur de base de données, de déclencher l’exécution de requêtes programmées directement dans le serveur MySQL. Ce planificateur de tâches (CRON-like) interne permet donc d’automatiser très simplement des tâches à des intervalles réguliers, ou à heure fixe, sans avoir besoin de configurer le système sur lequel la base de données fonctionne.

Comment fonctionne le programmateur d’évènements ?

La première chose à faire est de vérifier si le programmateur d’évènements est activé. Pour ce …

[Lire plus]
Event Scheduler

Je ne sais pas si je suis le seul à penser ça, mais je trouve qu’il y a peu de ressources (ou alors, je ne les connais pas) distribuant des exemples de procédures stockées, de fonctions, de triggers ou d’events scheduler. Pour pallier ce manque, je viens de publier une page avec le code d’un Event.

Je compte faire une page (et non un post, pour pas que ça tombe archiver avec le temps) avec des exemples de chaque type de routine, avec leurs particularités. Mon Event est donc le premier exemple d’une petite série à venir. Je n’explique pas en détail chaque ligne; je montre les possibilités et j’invite les gens intéressés à consulter la documentation pour mieux apprendre sur chaques features.

Mon exemple se trouve donc ici : http://www.noidea.ca/mysql-event-scheduler/

Les nouveautés de MySQL 5.1 — (part 2/5)


(<- précédent)

Le programmateur d’évènements

Pouvoir automatiser ses tâches de manière fiable et simple est le rêve de tout administrateur de base de données. Le programmateur d’évènements (Event Scheduler) est un planificateur de tâches (CRON-like) embarqué dans MySQL 5.1.

Il est alors possible d’exécuter, de façon récurrente ou unique, des requêtes, en fonction de la date et de l’heure.

L’évènement se crée avec la commande CREATE EVENT.

CREATE EVENT nom_evenement ON SCHEDULE
      <moment> DO <code_sql>

L’évènement peut être lancé une seule fois (AT) ou de manière répétitive (EVERY)

[Lire plus]
Showing entries 1 to 8