MySQL クエリのスケジュール
MySQL のイベント スケジューラ機能を使用すると、ユーザーは指定した間隔で実行するタスクをスケジュールできます。この機能は、定期的なデータのバックアップやレポートの定期的な生成など、さまざまなシナリオで役立ちます。
ケーススタディ: 在庫評価
次のような在庫データベースがあります。過去の日付の品目ごとの評価に関するレポートを生成する必要があります。現在の在庫の評価額を手動で計算できますが、過去の評価額を追跡する方法も必要です。
解決策: イベント スケジューラを使用する
クエリをスケジュールするには評価データを別のテーブルにダンプする場合は、次に従ってください手順:
宛先テーブルの作成:
CREATE TABLE stock_dumps ( itemcode VARCHAR(255), quantity INT, avgcost DECIMAL(10,2), ttlval DECIMAL(10,2), dump_date DATETIME );
セットアップスケジュール:
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;
代替: Cron/スケジュールされたジョブの使用
イベント スケジューラを使用したくない場合は、ダンプ クエリを含む SQL ファイルを実行する cron ジョブまたはスケジュールされたタスクを作成します。
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;
job:
mysql -u [user] -p [password] < /path/to/SQL_file.sql
このクエリを毎日または必要な頻度でスケジュールすることにより、在庫評価の履歴記録を維持し、過去の日付に関するレポートを生成できます。
以上がMySQL で日次在庫評価レポートを自動化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。