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

推薦する

CSS で text-align と margin: 0 auto を使用して中央に配置する例コード

CSSでtext-align、margin: 0 autoを使用して中央揃えにするtext-alig...

1 つの記事で JSON (JavaScript Object Notation) を理解する

目次JSONが登場JSON構造JSONオブジェクトJson オブジェクトと JavaScript オ...

DIV、テーブル、XHTML のウェブサイト構築の違いの分析と説明

簡単に言えば、ウェブサイト構築とは、「この人はどんな外見をしているのか」と「この人はどんな内面を持っ...

MySQL でデータ テーブルを作成し、主キーと外部キーの関係を確立する方法の詳細な説明

序文MySQL テーブルの主キーと外部キーを作成するときは、次の点に注意する必要があります。主キーと...

この記事ではJavaScriptの基本であるディープコピーとシャローコピーについて説明します。

目次浅いコピーディープコピー補充する要約するコピー(クローン、複製などとも呼ばれる)ですが、ディープ...

HTMLフォームアプリケーションにはチェックボックスとラジオボタンの使用が含まれます

チェックボックスやラジオボタンの使用を含むコードをコピーコードは次のとおりです。 <!DOCT...

DCL を使用して MySQL でユーザーを管理し、権限を制御する方法

DCL (データ制御言語): データベースのアクセス権とセキュリティ レベルを定義し、ユーザーを作成...

Linux の一般的なコマンドとショートカット キーの紹介

目次1 システムの紹介2 システムショートカット3 一般的なシステムコマンド1 システムの紹介 1....

Docker で Tomcat を使用して Web アプリケーションを迅速にデプロイする方法の例

Docker の基本的な操作を学習した後、コンテナにいくつかの基本的なアプリケーションをデプロイして...

JavaScript でモバイル モーダル ボックスの効果を実現

この記事では、モバイルモーダルボックス効果を実現するためのJavaScriptの具体的なコードを参考...

nginxとバックエンドポート間の競合の解決策

質問: Alice 管理システムを開発しているときに、すべてのバックエンド インターフェイスが最初の...

Nodejs モジュール システムのソースコード分析

目次概要CommonJS 仕様Node の CommonJS 仕様の実装モジュールのエクスポートとイ...

MySQLテーブルパーティショニングプログラムを変更する方法

MySQLテーブルパーティショニングプログラムを変更する方法1. サブテーブルの実装の原則は次のとお...

mysql-8.0.11-winx64.zip の詳細なインストール チュートリアル

zip インストール パッケージをダウンロードします。 MySQL8.0 For Windows z...

Vue3 ドラッグ可能な左パネルと右パネルの分割コンポーネントの実装

目次コンポーネントの分解左パネル右パネル入力パラメータの分解小道具スロット具体的な実装ドラッグする方...