Event

Vous êtes ici : >> SQL / Event (événements)
Temps d'étude : 30min. Niveau : Moyen.
Tags : Base de données, cours sql, Event (événements)
Fichier(s) utile(s) pour ce cours : employes.sql

Evénement

Un event (événement) permet d'isoler un morceau de code permettant de réaliser un traitement à un moment précis.
Nous ne pourrons pas lancer son exécution mais nous pourrons choisir le moment dans le temps prévu pour commander son exécution.

Avant d'écrire un event, nous devrons les activer :

SQL / Event
	SHOW GLOBAL VARIABLES LIKE 'event_scheduler';
	SET GLOBAL event_scheduler = 1 ;
	SHOW GLOBAL VARIABLES LIKE 'event_scheduler';
	
Voici une procédure permettant de copier une table :

SQL / Procédure
	DELIMITER $$
		DROP procedure IF EXISTS p_sauvegarde_employes $$
		CREATE procedure p_sauvegarde_employes()
		BEGIN
			SET @sql=concat('CREATE table copie_employes_' ,curdate()+0, '    SELECT * FROM employes');
			PREPARE req FROM @sql ;
			EXECUTE req ;
		END $$
	
Voici maintenant un event capable d'exécuter cette procédure chaque jour :

SQL / Event
	DELIMITER $$
	DROP event IF EXISTS e_sauvegarde_employes $$		
		CREATE EVENT e_sauvegarde_employes	ON SCHEDULE EVERY 1 DAY STARTS '2016-12-01 15:10:00'
			DO CALL p_sauvegarde_employes() $$	
	
Nous prévoyons la planification de l'événement pour la première fois le 01/12/2016 et ensuite une fois par jour.

Cette ligne permet d'observer les événements :

	SHOW EVENTS \G $$