この投稿では、指定した時間間隔の後に MySQL データベースからレコードが削除される問題に対処します。
問題:
MySQL テーブル内のメッセージ「id」、「message」、および「date」列を含む列は 7 日後に削除する必要があります。日付は「YYYY-MM-DD HH:MM:SS」の形式で指定します。この削除プロセスには cron ジョブではなく MySQL イベントを使用することが提案されています。
クエリ:
以下のクエリには、7 より古いメッセージを削除するための修正された条件が含まれています。 days:
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;
説明:
質問で提案されている条件を使用する代わりに (「DELETEmessages WHERE date >= (現在の日付 - 7 日)」 )")、「WHERE date 推奨事項: これには MySQL イベントを使用できます。この目的では、単純な cron スクリプトを使用することも有効なオプションです。これにより、メンテナンスが容易になり、複雑な SQL 回避策が回避され、システムとシームレスに統合されます。
以上が7 日後に MySQL レコードを自動的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。