Créer un événement pour mettre à jour les données périodiquement
Dans cette étape, nous allons créer un événement MySQL qui met à jour une table périodiquement. Tout d'abord, nous devons créer une base de données et une table. Ensuite, nous allons créer l'événement pour mettre à jour la table toutes les minutes.
Tout d'abord, connectons-nous au serveur MySQL en utilisant le client mysql
. Ouvrez un terminal et exécutez la commande suivante :
mysql -u root -p
Entrez le mot de passe de l'utilisateur root lorsque vous y êtes invité.
Maintenant, créons une base de données nommée test_db
:
CREATE DATABASE IF NOT EXISTS test_db;
Ensuite, basculez sur la base de données test_db
:
USE test_db;
Maintenant, créons une table nommée event_table
avec deux colonnes : id
(INT, clé primaire, auto-incrément) et value
(INT) :
CREATE TABLE IF NOT EXISTS event_table (
id INT AUTO_INCREMENT PRIMARY KEY,
value INT
);
Insérons une valeur initiale dans la table :
INSERT INTO event_table (value) VALUES (0);
Maintenant, créons l'événement. L'événement mettra à jour la colonne value
de la table event_table
toutes les minutes. Exécutez l'instruction SQL suivante :
CREATE EVENT IF NOT EXISTS update_event
ON SCHEDULE EVERY 1 MINUTE
DO
UPDATE event_table SET value = value + 1;
Cette instruction crée un événement nommé update_event
. La clause ON SCHEDULE EVERY 1 MINUTE
spécifie que l'événement doit s'exécuter toutes les minutes. La clause DO
spécifie l'instruction SQL à exécuter lorsque l'événement s'exécute, qui incrémente la colonne value
de 1.
Pour vérifier si l'événement a été créé, exécutez la requête SQL suivante :
SHOW EVENTS FROM test_db;
Vous devriez voir une sortie similaire à ceci :
+----------+---------------+-------------+-----------+----------+---------------------+---------------------+-----------+------------+-------------------+----------------------+--------------------+--------------------+
| Db | Name | Definer | Time zone | Type | Execute at | Interval_value | Interval_field | Starts | Ends | Status | Originator | character_set_client | collation_connection | db_collation |
+----------+---------------+-------------+-----------+----------+---------------------+---------------------+-----------+------------+-------------------+----------------------+--------------------+--------------------+
| test_db | update_event | root@% | SYSTEM | RECURRING | NULL | 1 | MINUTE | 2024-10-27 14:30:00 | NULL | ENABLED | 1 | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_0900_ai_ci |
+----------+---------------+-------------+-----------+----------+---------------------+---------------------+-----------+------------+-------------------+----------------------+--------------------+--------------------+
1 row in set (0.00 sec)
Cela confirme que l'événement a été créé et est activé.
Maintenant, quittez le client MySQL :
exit
L'événement s'exécutera désormais toutes les minutes, mettant à jour la colonne value
de la table event_table
. Dans l'étape suivante, nous vérifierons l'état d'exécution de l'événement.