Vous êtes sur la page 1sur 4

M203 .

GERER LES DONNEES

Le programmateur d'évènements sous MySQL

Introduction

Le programmateur d'évènements est un processus qui déclenche des évènements en fonction


de la date et de l'heure auxquelles ils sont programmés. Ce sont donc des déclencheurs
temporels qui vont ordonner l'exécution de l'évènement. L'évènement réalise une
combinaison de procédures stockées ou de une à plusieurs requêtes SQL programmées par
l'utilisateur. Le déclenchement peut être périodique et se lancer de une à plusieurs fois.

État d'activité du programmateur d'évènements

L'état d'activité du service des évènements est fourni par la requête suivante :

SHOW GLOBAL VARIABLES LIKE 'event_scheduler';


+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | on |
+-----------------+-------+

Pour activer le service des évènements

SET GLOBAL event_scheduler = 1 ;

Syntaxe

CREATE EVENT [IF NOT EXISTS] nom_evenement


ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'commentaire']
DO requete_sql;

schedule:
AT timestamp [+ INTERVAL intervalle]
| EVERY intervalle [STARTS timestamp] [ENDS timestamp]

intervalle:
quantite {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

Mme.IDRISSI 1 ISFO
M203 . GERER LES DONNEES

Exemples :

Nous allons utiliser la table suivante :


CREATE TABLE DECLENCHEUR (
ID_DECLENCHEUR INTEGER UNSIGNED AUTO_INCREMENT,
INS_DECLENCHEUR TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
INFORMATION_DECLENCHEUR VARCHAR(32),
PRIMARY KEY PK_DECLENCHEUR(ID_DECLENCHEUR)
);

Exemple 1.1 - Insérer une ligne dans la table DECLENCHEUR toutes les minutes.

CREATE EVENT EXEMPLE_1_1


ON SCHEDULE EVERY 1 MINUTE
DO INSERT INTO DECLENCHEUR (INFORMATION_DECLENCHEUR) VALUES
('Exemple 1.1');
Le mot clef EVERY indique que l'évènement est récurrent. Il est suivi par l'intervalle entre
chaque répétition.

Exemple 1.2 - Insérer une ligne dans la table DECLENCHEUR dans deux minutes.

CREATE EVENT EXEMPLE_1_2


ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 2 MINUTE
DO INSERT INTO DECLENCHEUR (INFORMATION_DECLENCHEUR) VALUES
('Exemple 1.2');

Le mot clef AT signifie que l'évènement est à exécution unique. Il est suivi par la date et
l'heure de déclenchement. Après la date de déclenchement, l'évènement est automatiquement
supprimé.

Exemple 1.3 - Lancer (une seule fois) une procédure stockée à 03h50 du 1er janvier
2023.

DELIMITER |
CREATE PROCEDURE INSERTION ( IN EXEMPLE VARCHAR(20))
BEGIN
INSERT INTO DECLENCHEUR ( INFORMATION_DECLENCHEUR )
VALUES ( CONCAT ( 'PROCEDURE : ', EXEMPLE ));
END|

CREATE EVENT EXEMPLE_1_3


ON SCHEDULE AT '2023-01-01 03:50:00'
DO CALL INSERTION('Exemple 1.3');

Mme.IDRISSI 2 ISFO
M203 . GERER LES DONNEES

Exemple 1.4.a - Insérer une ligne dans la table DECLENCHEUR chaque jour à 04 h 00
du matin.

CREATE EVENT EXEMPLE_1_4_a


ON SCHEDULE EVERY 1 DAY STARTS '2023-06-12 04:00:00'
DO INSERT INTO DECLENCHEUR (INFORMATION_DECLENCHEUR) VALUES
('Exemple 1.4.a');
Le mot clef STARTS permet d'indiquer quand l'évènement est déclenché pour la première
fois. Il est donc suivi par la date de la première exécution.

IModification de l'évènement

ALTER EVENT nom_evenement


[ON SCHEDULE schedule]
[RENAME TO nouveau_nom_evenement]
[ON COMPLETION [NOT] PRESERVE]
[COMMENT 'commentaire']
[ENABLE | DISABLE]
[DO requete_sql]

III-C-2. Exemples

Exemple - Renommer l'exemple 1.5.

ALTER EVENT EXEMPLE_1_5


RENAME TO NOUVEAU_EXEMPLE_1_5;

Exemple - N'exécutez l'exemple 1.1 que toutes les 10 minutes.

ALTER EVENT EXEMPLE_1_1


ON SCHEDULE EVERY 10 MINUTE;

I Suppression de l'évènement. Suppression d'évènement

DROP EVENT [IF EXISTS] nom_evenement

III-D-2. Exemples▲

Exemple - Suppression de l'exemple 1.1.

DROP EVENT EXEMPLE_1_1;

Mme.IDRISSI 3 ISFO
M203 . GERER LES DONNEES

Activation de l'évènement

Activer un évènement l'autorise à s'exécuter. III-E-

ALTER EVENT nom_evenement ENABLE;

Chaque fois que l'évènement devrait s'exécuter, s'il a été désactivé, le déclenchement n'aura
pas lieu et le traitement ne démarrera pas.

Désactivation de l'évènement

ALTER EVENT nom_evenement DISABLE;

ALTER EVENT EXEMPLE_1_4_b DISABLE;

Mme.IDRISSI 4 ISFO

Vous aimerez peut-être aussi