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 つの位置 (ページの右端) に固定します。
質問一部のページでは、onload でデータを要求してからビューをレンダリングするため、ミニプログラ...
1. 問題下図のような表があり、結果値がreference_high値より大きいデータを見つける必要...
この記事は主に、nginx に基づいてブラウザネゴシエーションキャッシュを設定する詳細なプロセスを紹...
目次複数の変数を同時に宣言する場合は、1 行に短縮できます。分割代入は複数の変数に同時に値を割り当て...
1. ポジショニングとは何ですか? CSS の position 属性には、absolute/re...
学習プロセス中にプッシュ イメージが常にタイムアウトすることがわかったため、Alibaba Clou...
クエリキャッシュ制限query_cache_limit は、単一のクエリで使用できるバッファ サイズ...
インターネットには、真実のように見える「噂」がたくさんあります。もちろん、悪意のあるものではありませ...
<TR> タグの属性は、次の表に示すように、テーブル内の各行のプロパティを設定するために...
目次1. 異なるビューポートを取得する方法2. 水平画面と垂直画面のJavaScript検出3. 水...
ログローテーションは、Linux システムでは非常に一般的な機能です。ログローテーションは、システム...
CocosCreator バージョン: 2.3.4 Cocos には List コンポーネントがない...
HTTPS ウェブサイトの構築コストが下がるにつれて、ほとんどのウェブサイトが HTTPS プロトコ...
居住地を選択するためのドロップダウンボックスをjQueryで実装するための具体的なコードは参考までに...
CEP - 複合イベント処理。ご注文後、一定期間内にお支払いの確認が取れませんでした。タクシーの配...