ホームページ >データベース >mysql チュートリアル >毎日の在庫評価のために MySQL クエリをスケジュールするにはどうすればよいですか?

毎日の在庫評価のために MySQL クエリをスケジュールするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-28 17:58:12265ブラウズ

How to Schedule MySQL Queries for Daily Inventory Valuation?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。