ホームページ >データベース >mysql チュートリアル >毎日の在庫評価のために MySQL クエリをスケジュールするにはどうすればよいですか?
MySQL クエリのスケジュール: 在庫評価シナリオ
在庫管理システムは通常、製品データを 2 つのテーブルに保存します。1 つは品目の詳細用 (table_1) ) と在庫数量用のもう 1 つ (table_2)。レポート目的で、ユーザーは過去の日付の在庫評価を表示する必要がある場合があります。ただし、品目のコストと数量は購入や販売によって変動する可能性があるため、現在の評価は当日のデータに対してのみ正確です。
この課題に対処するには、1 つのオプションは、過去の在庫評価を生成する定期的なタスクをスケジュールすることです。 。 MySQL でそれがどのように可能になるかは次のとおりです。
オプション 1: イベント スケジューラ
MySQL のイベント スケジューラを使用すると、データベース内でスケジュールされたタスクを実行できます。毎日の在庫評価ダンプをスケジュールするには、itemcode、quantity、avgcost、ttlval、dump_date の各フィールドを含む、stock_dumps というテーブルを作成します。
次に、次の SQL ステートメントを使用して、Dumping_event という名前のイベントを作成します。
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
オプション 2: Cronジョブ
または、ダンプを実行する SQL ファイルを実行する cron ジョブまたは Windows スケジュール済みタスクを作成することもできます。 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;
タスクを毎日実行するようにスケジュールすると、stock_dumps テーブルに保存される在庫評価履歴レコードが生成されます。
以上が毎日の在庫評価のために MySQL クエリをスケジュールするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。