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 リクエストと注意事項

推薦する

MySQL無料インストールバージョンの設定チュートリアル

この記事では、参考までにMySQLの無料インストール構成チュートリアルを紹介します。具体的な内容は次...

フロントエンドは画像を遅延ロードする方法を知っている必要があります(3つの方法)

目次1. 遅延読み込みとは何ですか? 2. 遅延読み込みを実装する🌄: 2.1 最初の方法: 2.2...

JavaScriptオブジェクト指向について学ぼう

目次JavaScript プロトタイプチェーンオブジェクトプロトタイプトップレベルのプロトタイプOb...

静的ウェブサイトをRSSに変換するツール

<br /> この記事は allwebdesignresources.com から Ra...

例を通してMySQLの更新がテーブルをロックするかどうかを判定する

2つのケース: 1. 索引あり 2. 索引なし前提条件:方法: コマンドラインを使用してシミュレート...

JavaScript setinterval 1秒遅延ソリューション

setinterval を使用すると、ページを開いた直後に 1 秒の遅延後に実行されることがわかりま...

Linuxのファイルとフォルダの権限を操作する方法

Linux のファイル権限まず、現在のディレクトリ内のファイルの内容を確認しましょう。 ls -l ...

Vue プロジェクトで Baidu Map API を使用する方法

目次1. Baidu Map Open Platformにアカウントを登録してログインする2. 必要...

Ubuntu 20.04 に Python 3 仮想環境をインストールする詳細なチュートリアル

以下はすべて仮想マシン上で実行されます1. pip3をインストールするsudo apt で pyth...

MySQLイベント計画タスクに関する簡単な説明

1. イベントが有効になっているかどうかを確認する'%sche%' のような変数を表...

HTML コード作成ガイド

共通コンベンションタグ自己終了タグ。閉じる必要はありません (例: img input br hr ...

Linux gzipコマンドの使用

1. コマンドの紹介gzip (GNU zip) コマンドは、ファイルの圧縮と解凍に使用されます。こ...

MySQLインデックスの基礎となるデータ構造の詳細

目次1. インデックスの種類1. B+ツリー2. MyISAM と InnoDB の B+ ツリー ...

Linux コマンド クエリ アプレットでの WePY クラウド開発の実践

みなさんこんにちは。今日は Linux コマンド クエリ アプレットでの WePY クラウド開発の実...

mysql ルートユーザーを認証できず、Navicat リモート認証プロンプト 1044 の問題を解決します

まず解決策を見てみましょう #------------mysql の root ユーザーに権限を付与...