ホームページ >データベース >mysql チュートリアル >イベントを使用して古い MySQL レコードを自動的に削除するにはどうすればよいですか?

イベントを使用して古い MySQL レコードを自動的に削除するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-15 19:08:10777ブラウズ

How Can I Automatically Delete Old MySQL Records Using Events?

イベントによる指定時間経過後の MySQL レコードの削除

7 日を超えたメッセージを MySQL データベースから自動的に削除するには、この代替案を検討してください。イベントを使用したアプローチ:

CREATE EVENT delete_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
ON COMPLETION PRESERVE
DO BEGIN
  DELETE messages WHERE date < DATE_SUB(NOW(), INTERVAL 7 DAY);
END;

このイベントは毎日、指定された時間に実行されます。日付列が 7 日より古いすべてのメッセージを削除します。

コードの説明は次のとおりです:

  • CREATE EVENT: 指定された名前 (delete_event) で新しいイベントを作成します。
  • ON SCHEDULE AT CURRENT_TIMESTAMP INTERVAL 1 DAY: イベントの実行をスケジュールします現在のタイムスタンプから開始して 1 日 1 回。
  • ON COMPLETION PRESERVE: エラーが発生した場合でもイベントの実行が継続されるようにします。
  • DO BEGIN: イベントの実行を開始します。
  • DELETEmessages ...: 指定された条件に基づいてメッセージテーブルから行を削除します。この場合、日付列が 7 日より古いメッセージが削除されます。
  • WHERE date
  • DATE_SUB(NOW(), INTERVAL 7 DAY): DATE_SUB() 関数を使用して、現在の日付 (NOW()) から 7 日を減算し、日付列の値と比較します。
  • END;:イベントの実行。

または、cron スクリプトを使用してこのタスクを実行することもできます。ただし、イベントを使用する利点は、システムの cron スケジューラーから独立して実行するように構成できることです。

以上がイベントを使用して古い MySQL レコードを自動的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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