Planification des requêtes MySQL
La fonctionnalité Planificateur d'événements de MySQL permet aux utilisateurs de planifier l'exécution de tâches à des intervalles spécifiés. Cette fonctionnalité est bénéfique dans divers scénarios, tels que les sauvegardes périodiques de données ou la génération régulière de rapports.
Étude de cas : Valorisation des stocks
Vous disposez d'une base de données d'inventaire dans laquelle vous devez générer des rapports sur l'évaluation par article pour les dates passées. Bien que vous puissiez calculer manuellement la valorisation du stock actuel, vous avez également besoin d'un moyen de suivre la valorisation historique.
Solution : Utiliser le planificateur d'événements
Pour planifier une requête qui transfère les données d'évaluation dans un tableau séparé, suivez ces étapes :
Créez une destination table :
CREATE TABLE stock_dumps ( itemcode VARCHAR(255), quantity INT, avgcost DECIMAL(10,2), ttlval DECIMAL(10,2), dump_date DATETIME );
Planification de l'installation :
CREATE EVENT Dumping_event ON SCHEDULE EVERY 1 DAY ON COMPLETION NOT PRESERVE ENABLE 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;
Alternative : Utilisation Cron/Tâche planifiée
Si vous préférez ne pas utiliser Event Planificateur, vous pouvez créer une tâche cron ou une tâche planifiée qui exécute régulièrement un fichier SQL contenant la requête de vidage.
Créez un fichier SQL :
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;
Planifier le travail :
mysql -u [user] -p [password] < /path/to/SQL_file.sql
En planifiant cette requête quotidiennement ou aussi souvent que nécessaire, vous pouvez conserver un historique des évaluations des stocks et générer des rapports pour toute date passée.
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!