MySQLで指定した時間前にレコードを自動的に削除する方法

MySQLで指定した時間前にレコードを自動的に削除する方法

イベントについて: MySQL 5.1 では、イベントの概念が導入され始めました。イベントは「時間トリガー」であり、トリガーのイベント トリガーとは異なります。イベントは Linux crontab のスケジュールされたタスクに似ており、時間トリガーに使用されます。これを単独で使用するか、ストアド プロシージャを呼び出すと、関連する SQL ステートメントまたはストアド プロシージャが特定の時点でトリガーされます。

まず、2 日前に記録された SQL ステートメントを削除します (webserver_monitormemory はテーブル名、time は時間フィールドです)。

DATE(time) <= DATE(DATE_SUB(NOW(),INTERVAL 2 day)) の場合、webserver_monitormemory から削除します。

ストアド プロシージャを作成します。

区切り文字 //
CREATE PROCEDURE autodel()
  -> 開始
  -> DATE(time) <= DATE(DATE_SUB(NOW(),INTERVAL 2 day)) の webserver_monitormemory から削除します。
  -> 終了
  -> //
区切り文字 ;

イベントを作成し、autodel を毎日実行するストアド プロシージャをカスタマイズします。

イベント「event_auto_del_memorydata」を作成する  
スケジュールに従って 1 日ごとに開始 '2017-11-20 00:00:00'  
完了時に保存せず、有効にし、autodel() を呼び出します。

イベントプラン(スケジューラ)を起動する方法は4つあります。キー値 1 または ON はオンを意味し、0 または OFF はオフを意味します。

グローバルイベントスケジューラを 1 に設定します。 
@@global.event_scheduler を 1 に設定します。 
グローバルイベントスケジューラを ON に設定します。 
@@global.event_scheduler を ON に設定します。

イベント プラン (スケジューラ) が現在有効になっているかどうかを確認する方法は 3 つあります。

'event_scheduler' のような変数を表示します。
@@event_schedulerを選択します。
プロセスリストを表示します。

イベントの開始と終了:

ALTER EVENT event_auto_del_memorydata ON COMPLETION PRESERVE ENABLE; //イベントを有効にする ALTER EVENT event_auto_del_memorydata ON COMPLETION PRESERVE DISABLE; //イベントを無効にする

これは最も簡単ですが、最も重要です。タイマーは手動で開始する必要があります。そうしないと機能しません。

ALTER EVENT event_time_clear_data を ON にする 
完了保存を有効にする;

さらに、タイマーをオフにするコードは次のとおりです。

ALTER EVENT event_time_clear_data を ON にする 
完了保存無効;

ストアド プロシージャを削除します。

プロシージャ pro_clear_data を削除します。

イベントを削除:

存在する場合はイベントを削除 event_time_clear_data1

要約する

以上は、編集者が紹介したMySQLで指定時間前にレコードを自動的に削除する操作方法です。皆様のお役に立てれば幸いです。ご質問があれば、メッセージを残してください。編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL スケジュールタスク例チュートリアル
  • Linux で MySQL スケジュールタスクを実装する方法
  • Windows での MySQL の使用: 自動スケジュールバックアップの実装
  • MySQLデータベースイベントスケジュール実行タスクの詳細な説明
  • MySQL イベント スケジューラに関するよくある話 (必読)
  • MySQL でのイベントの使用法の詳細な説明
  • mysql スケジュールタスク (イベント イベント) の詳細な説明

<<:  TomcatコンポーネントはWebサーバーのアーキテクチャの進化を示しています

>>:  Nginx プロキシ axios リクエストと注意事項

推薦する

Vueはダイアログのカプセル化を実装します

目次Vue2 ライティングVue3プラグインのバージョンの記述Vue3 動的コンポーネントの記述書き...

Vue プロジェクトに ECharts を導入する

目次1. インストール2. はじめに3. 使用4. 必要に応じてEChartsチャートとコンポーネン...

数百万のデータボリュームに対する MySQL ページングクエリ方法とその最適化の提案

データベース SQL の最適化はよくある問題です。何百万ものデータ ボリュームに対してページング ク...

HTML テーブルタグチュートリアル (27): セルの背景画像属性 BACKGROUND

セルの背景画像を設定でき、任意の GIF または JPEG 画像ファイルを使用できます。基本的な構文...

Linux のパスワードを紛失した場合にリセットする方法

1. スタートアップメニューでは、カーソルを最初の行に移動します - eを押します 2. UTF-8...

HTML5+CSS3 ヘッダー作成例と更新

前回、私たちは 2 つのヘッダー レイアウト (フレックスボックス 1 つとフロート 1 つ) を考...

Ubuntu システムにおけるネットワーク構成ファイルの分析と説明

今日は奇妙なネットワーク問題に遭遇しました。調査プロセスといくつかの構成状況を記録し、Linux で...

LinuxでHomebrewを使用する正しい方法

多くの人が Linux Homebrew を使用しています。これをより良く使用するための 3 つのヒ...

js での遅延読み込みとプリロードの具体的な使用法

遅延読み込み(レイジー読み込み)とプリロードは、Web 最適化によく使用される手段です。 。 1. ...

CSSは高度に適応したフルスクリーンを実現します

独自のデモを作成するときに、display:flex を使用して垂直方向の中央揃えを実現したいと思い...

Quill エディタでカスタム HTML レコードを挿入する詳細な例

もう2020年です。飢えた人間は単純なテキストでは満足できなくなり、さまざまなスタイルの派手なテキス...

grpc のリバース プロキシとして nginx を使用する場合の落とし穴の概要

背景ご存知のとおり、nginx は高性能な Web サーバーであり、負荷分散やリバース プロキシによ...

MySQL パーティション テーブルの基本入門チュートリアル

序文最近のプロジェクトでは、大量のデータを保存する必要があり、このデータには有効期限があります。クエ...

Linux で docker-compose を使用したソフトウェア構成の詳細な説明

序文この記事では、docker-compose の構成をいくつか紹介します。これらを参考にして、独自...

MySQL インデックスが失敗するいくつかの状況の概要

1. インデックスはnull値を保存しないより正確に言うと、単一列インデックスには null 値は格...