Maison > base de données > tutoriel mysql > Comment puis-je planifier l'exécution automatique de requêtes MySQL à des intervalles définis ?

Comment puis-je planifier l'exécution automatique de requêtes MySQL à des intervalles définis ?

Susan Sarandon
Libérer: 2024-11-30 01:43:10
original
844 Les gens l'ont consulté

How Can I Schedule MySQL Queries to Run Automatically at Set Intervals?

Planification des requêtes MySQL : une réponse complète

La planification d'une requête MySQL pour qu'elle s'exécute à des intervalles spécifiques peut être un outil précieux pour l'analyse des données et la création de rapports. . Considérez le scénario suivant dans lequel vous disposez d'une base de données d'inventaire et avez besoin de données historiques sur l'évaluation des stocks.

Planification d'une requête avec le planificateur d'événements

MySQL fournit une fonctionnalité de planificateur d'événements qui vous permet pour automatiser les tâches en fonction d'un planning. Pour planifier votre requête, créez d'abord la table stock_dumps avec les champs spécifiés :

CREATE TABLE stock_dumps (itemcode VARCHAR(255), quantity INT, avgcost DECIMAL(10,2), ttlval DECIMAL(10,2), dump_date DATETIME);
Copier après la connexion

Ensuite, créez l'événement Event Scheduler en utilisant cette syntaxe :

CREATE EVENT `Dumping_event` ON SCHEDULE
        EVERY 1 DAY
    ON COMPLETION NOT PRESERVE
    ENABLE
    COMMENT ''
    DO BEGIN
INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
  FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;
END;
Copier après la connexion

Cet événement est programmé pour s'exécuter chaque jour, en insérant les données actuelles de valorisation des stocks dans la table stock_dumps.

Planification d'une requête avec Cron Travaux

Vous pouvez également utiliser des tâches cron (Linux) ou des tâches planifiées Windows pour automatiser cette tâche. Créez un fichier SQL avec la requête suivante :

INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;
Copier après la connexion

Ensuite, planifiez l'exécution de la commande suivante à l'intervalle souhaité :

mysql -uusername -ppassword < /path/to/sql_file.sql
Copier après la connexion

Cette approche vous permet de personnaliser l'intervalle de planification et exécute la requête à l'aide de l'interface de ligne de commande.

Choisissez la méthode qui correspond le mieux à vos besoins et automatisez vos requêtes MySQL pour une récupération efficace des données et analyse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal