ホームページ >データベース >mysql チュートリアル >毎日の MySQL イベントを特定の時間に実行するようにスケジュールするにはどうすればよいですか?

毎日の MySQL イベントを特定の時間に実行するようにスケジュールするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-29 11:54:10290ブラウズ

How to Schedule a Daily MySQL Event to Run at a Specific Time?

毎日特定の時間に MySQL イベントをスケジュールする

MySQL では、イベント スケジューラを使用して、事前定義されたスケジュールに基づいてタスクを自動化できます。ただし、指定した構文 (CREATE EVENT...DO UPDATE...AT TIMESTAMP) は古くなっています。

解決策:

毎日午後 1 時にステータスフィールドを「0」にするには、次に従ってください手順:

  1. 毎日を使用する トリガー: CREATE EVENT 構文の AT TIMESTAMP を EVERY 1 DAY に置き換えます。これにより、イベントが毎日 1 回実行されるようになります。
  2. スケジュール イベント時間: STARTS (TIMESTAMP(CURRENT_DATE) INTERVAL 1 DAY INTERVAL 1 HOUR) を構文に追加します。これにより、イベントが午後 1 時に開始するようにスケジュールされます (現在時刻から 1 日と 1 時間オフセットされます)。

改訂されたクエリ:

CREATE EVENT event_name
ON SCHEDULE
  EVERY 1 DAY
  STARTS (TIMESTAMP(CURRENT_DATE) + INTERVAL 1 DAY + INTERVAL 1 HOUR)
DO
  UPDATE `ndic`.`students`
  SET `status` = '0';

TIMESTAMP の代替:

STARTS ステートメントは、スケジュールの開始点として TIMESTAMP(CURRENT_DATE) を使用します。ただし、現在時刻を返す NOW() 関数を使用することもできます。

STARTS (NOW() + INTERVAL 1 DAY + INTERVAL 1 HOUR)

以上が毎日の MySQL イベントを特定の時間に実行するようにスケジュールするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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