1. イベントとは何ですか? MySQL イベントは、特定のタスクを実行するために特定の期間に基づいてトリガーされるのに対し、トリガーは特定のテーブルによって生成されたイベントに基づいてトリガーされるため、一時トリガーと呼ばれることもあります。これが違いです。 2. 「イベント」機能を有効にする「イベント」機能を使用する前に、event_schedulerが有効になっていることを確認する必要があります。 1. 機能が有効になっているかどうかを確認します。-- 方法 1 SELECT @@event_scheduler; -- 方法 2 SHOW VARIABLES LIKE 'event%'; 以下のように「ON」と表示された場合、機能がオンになっていることを意味します。 mysql> @@event_scheduler を選択します。 +-------------------+ | @@イベント スケジューラ | +-------------------+ | オン | +-------------------+ セット内の 1 行 (0.00 秒) mysql> 'event%' のような変数を表示します。 +-----------------+-------+ | 変数名 | 値 | +-----------------+-------+ | イベントスケジューラ | オン | +-----------------+-------+ セット内の 1 行 (0.00 秒) 2. 機能コマンドを有効または無効にする: -- 機能コマンドを有効にする: グローバルイベントスケジューラを 1 に設定します。 グローバルイベントスケジューラを ON に設定します。 -- 機能を無効にするコマンド: グローバルイベントスケジューラを 0 に設定します。 グローバルイベントスケジューラを OFF に設定します。 もちろん、コマンドを開いてデータベースを再起動すると自動的に閉じられます。
よく使用されるイベント操作コマンド:
3. イベント - SQL構文の作成以下はEVENTイベント作成文です。一見するとかなり複雑です。分解して解釈してみましょう。 イベントを作成 [存在しない場合] イベント名 ON SCHEDULEスケジュール(スケジュール時間設定) [完了時に保存しない] [有効 | 無効 | スレーブで無効] [コメント'コメント'] SQLステートメントを実行します。
AT タイムスタンプ [+ INTERVAL 間隔] ... | すべての間隔 [STARTS タイムスタンプ [+ INTERVAL 間隔] ...] [ENDS タイムスタンプ [+ INTERVAL 間隔] ...] -- INTERVAL に含まれる時間単位は次のとおりです。 {年 | 四半期 | 月 | 日 | 時間 | 分 | 週 | 秒 | 年_月 | 日_時間 | 日_分 | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND} 1. 作成 - 単一のスケジュールされた実行イベントAT TIMESTAMP 時間文字列 [+ INTERVAL INTERVAL] AT TIMESTAMP は、イベントが 1 回だけ実行されることを意味します。TIMESTAMP は特定の時点を表し、その後に時間間隔を続けることで、この時間間隔後にイベントが発生することを示すことができます。 [+ INTERVAL INTERVAL]は遅延トリガー時間を示します。 TIMESTAMP は特定の文字列と一緒に使用されることに注意してください。特定の文字列でない場合 (現在の時刻を取得する CURRENT_TIMESTAMP など)、TIMESTAMP は追加されません。 例 1: demo_1119 テーブルにデータ行を挿入します。実行時間: 2020-11-20 00:00:00 イベントを作成 demo_event2 タイムスタンプ「2020-11-20 00:00:00」のスケジュールどおり `demo_1119` (`id`, `name`, `createTime`) VALUES (null, '陈哈哈', NOW()) に INSERT してください 結果クエリ: mysql> demo_1119 から * を選択します。 +-----+-----------+---------------------+ | ID | 名前 | 作成時間 | +-----+-----------+---------------------+ | 145 | 陳哈哈 | 2020-11-20 00:00:00 | +-----+-----------+---------------------+ セット内の行数は 9 です (0.00 秒) 例 2: demo_1119 テーブルにデータ行を挿入します。実行時間は現在の時刻から 5 時間後です。 イベントを作成 demo_event2 スケジュールどおり、CURRENT_TIMESTAMP + INTERVAL 5 時間 `demo_1119` (`id`, `name`, `createTime`) VALUES (null, '陈哈哈', NOW()) に INSERT してください 2. 作成 - ループ時間指定実行イベント間隔ごとに [開始タイムスタンプ] [終了タイムスタンプ] 例1: これからは、10秒ごとにdemo_1119テーブルにデータ行を挿入します。 イベントを作成 demo_event3 スケジュールどおり10秒ごとに 完了時に保存 `demo_1119` (`id`, `name`, `createTime`) VALUES (null, '陈哈哈', NOW()) に INSERT してください mysql> demo_1119 から * を選択します。 +-----+-----------+---------------------+ | ID | 名前 | 作成時間 | +-----+-----------+---------------------+ | 145 | 陳哈哈 | 2020-11-19 11:10:39 | | 146 | 陳哈哈 | 2020-11-19 11:10:49 | | 147 | 陳哈哈 | 2020-11-20 11:10:59 | | 148 | 陳哈哈 | 2020-11-20 11:11:09 | | 149 | 陳哈哈 | 2020-11-20 11:11:19 | | 150 | 陳哈哈 | 2020-11-20 11:11:29 | | 151 | 陳哈哈 | 2020-11-20 11:11:39 | +-----+-----------+---------------------+ セット内の行数は 9 です (0.00 秒) 例2: 2020-11-20 12:00:00から、10分ごとにdemo_1119テーブルにデータ行を挿入します。 イベントを作成 demo_event4 スケジュールどおり 10 分ごとに開始 '2020-11-20 12:00:00' 完了時に保存 `demo_1119` (`id`, `name`, `createTime`) VALUES (null, '陈哈哈', NOW()) に INSERT してください mysql> demo_1119 から * を選択します。 +-----+-----------+---------------------+ | ID | 名前 | 作成時間 | +-----+-----------+---------------------+ | 152 | 陳哈哈 | 2020-11-20 12:00:00 | | 153 | 陳哈哈 | 2020-11-20 12:10:00 | | 154 | 陳哈哈 | 2020-11-20 12:20:00 | | 155 | 陳哈哈 | 2020-11-20 12:30:00 | | 156 | 陳哈哈 | 2020-11-20 12:40:00 | +-----+-----------+---------------------+ セット内の行数は 5 です (0.00 秒) 例 3: 現在の時刻の 1 時間後から、10 分ごとに demo_1119 テーブルにデータ行を挿入します。テスト済みで利用可能なので、冗長なクエリ データは投稿しません。 イベントを作成 demo_event5 スケジュールに従って 10 分ごとに開始 CURRENT_TIMESTAMP+INTERVAL 1 時間 完了時に保存 `demo_1119` (`id`, `name`, `createTime`) VALUES (null, '陈哈哈', NOW()) に INSERT してください 例4: 現在の時刻から1日を開始し、1時間ごとにdemo_1119テーブルにデータ行を挿入し、3日後に終了します。 イベントを作成 demo_event5 1時間ごとにスケジュールどおり 開始時刻: CURRENT_TIMESTAMP+INTERVAL 1日 終了CURRENT_TIMESTAMP+INTERVAL 3 DAY 完了時に保存 `demo_1119` (`id`, `name`, `createTime`) VALUES (null, '陈哈哈', NOW()) に INSERT してください 例5: 毎日0:00にdemo_1119テーブルのデータをクリアする イベントを作成 demo_event5 スケジュールに従って 1 日ごとに開始 '2020-11-20 00:00:00' 完了時に保存 テーブル `demo_1119` を切り捨てます 3. イベントを変更する変更イベント ステートメントは作成ステートメントとまったく同じで、構文は次のとおりです。 ALTER EVENT イベント名 [ONSCHEDULEスケジュール] [古い名前から新しい名前へ] [完了時に保存しない] [コメント'コメント'] [有効 | 無効] [DO sql_statement] イベント タスクをオフにします: ALTER EVENT イベント名 ON COMPLETION PRESERVE DISABLE; イベント タスクの有効化: ALTER EVENT イベント名 ON COMPLETION PRESERVE ENABLE; 4. イベントを削除するDROP EVENT [存在する場合] event_name 4. イベント - Navicat で作成 (推奨)多くの人はコマンドラインで SQL 文を入力するのが好きで、それによってプロフェッショナルな感覚を得ていますが、リーダーによって道徳的に誘拐される可能性もあります~~ リーダーの中には、従業員が Google を使うのはクールで印象的だが、Baidu を使用して csdn を検索するのは低レベルだと考える人もいます。 しかし、初心者としては、私は今でも Navicat ガジェットと Baidu を使うのが好きです。さて、これ以上前置きはこれくらいにして、Navicat が EVENT イベントを作成する方法を見てみましょう。 下図のように、右クリックして新しいイベントを作成します 作成イベントの もちろん、間にセミコロンを入れて複数の SQL ステートメントを同時に記述することもできます。 BEGIN で始まり、END で終わります。 プラン欄を開いてみると、見覚えがありませんか?これについては前のモジュールで説明しました。友人たちにさらに深い印象を持ってもらうために、復習してみましょう。 パラメータの説明:
INTERVAL に含まれる時間単位は次のとおりです。
では、覚えやすいようにいくつか例を挙げてみましょう: 例 1: demo_1119 テーブルにデータ行を挿入、実行時間: 2020-11-20 00:00:00
2: demo_1119 テーブルにデータ行を挿入します。実行時間は現在の時刻から 5 時間後です。 例3: これからは、10秒ごとにdemo_1119テーブルにデータ行を挿入します。 例4: 2020-11-20 12:00:00から、10分ごとにdemo_1119テーブルにデータ行を挿入します。 例 5: 現在の時刻の 1 時間後から、10 分ごとに demo_1119 テーブルにデータ行を挿入します。 例6: 現在の時刻から1日を開始し、1時間ごとにdemo_1119テーブルにデータ行を挿入し、3日後に終了します。 例7: 毎日0:00にdemo_1119テーブルのデータをクリアする これで、MySQL のスケジュールされたタスク (EVENT イベント) の設定方法に関するこの記事は終了です。MySQL のスケジュールされたタスクに関する関連情報をさらに知りたい場合は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: W3C チュートリアル (6): W3C CSS アクティビティ
>>: CSS はコンテナ レベル (div...) タグを 1 つの位置 (ページの右端) に固定します。
FTP は主にファイル転送に使用され、Linux では vsftpd で実装されるのが一般的です。F...
テキストシャドウテキストに影を追加します。テキストとテキスト装飾に複数のシャドウを追加することができ...
私はインターネット上で数え切れないほどの my.cnf 構成を読みましたが、言及されている構成のほと...
序文今日 GitHub を閲覧していたところ、SQL を最適化および書き換えるための sora とい...
準備1. GPUがCUDAをサポートしているかどうかを確認するlspci | grep -i nvi...
WeChat アプレット プロジェクトを書いていたとき、その中に「都市選択」機能がありました。作者は...
この記事では、例を使用して、MySQL で GROUP_CONCAT を使用する方法について説明しま...
この記事では、LinuxシステムのVMwareインストールの具体的な手順を参考までに紹介します。具体...
目次1. はじめに2. 使用1. vue2とvue3の違い2. ページ上の一部のデータはキャッシュす...
オフィスでは、Linux 開発環境として Ubuntu システムが必要です。現在、Ubuntu 16...
目次Node.js の公式紹介Node.jsのコア開発言語ウェブ上の JavaScript と No...
この記事は、VMware Workstation 12 ProのインストールLinuxチュートリアル...
目次1. コンストラクタとインスタンス2. プロパティプロトタイプ3. プロパティ __proto_...
Vueドロップダウンリストの2つの実装最初の方法はv-forを使用する <el-select ...
Zabbix独自のWEBインターフェースを例に、Web監視の設定を行います。環境: zabbix4....