指定された時間間隔の後に実行されるMySQLワンタイムイベントの作成方法
MySQLのワンタイムイベントとは
ワンタイムイベント(一回限りのイベント)とは、特定のスケジュールに基づいて一度だけ実行されるイベントのことです。MySQLでは、CREATE EVENTステートメントとON SCHEDULE AT句を組み合わせることで、指定した日時や時間間隔の後に実行されるワンタイムイベントを簡単に作成できます。
指定した時間間隔の後に実行されるイベントの作成例
以下の例では、現在時刻から1分後に実行されるイベント「testing_event5」を作成しています。このイベントは、テーブルevent_messageにメッセージ「Hi」と現在のタイムスタンプを挿入します。
mysql> CREATE EVENT testing_event5 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE ON COMPLETION PRESERVE DO INSERT INTO event_message(message,generated_at) Values('Hi',NOW());
Query OK, 0 rows affected (0.06 sec)実行結果の確認
イベントが実行された後、テーブルの内容を確認してみましょう。
mysql> Select * from event_message;
+----+---------+---------------------+
| ID | MESSAGE | Generated_at |
+----+---------+---------------------+
| 1 | Hello | 2017-11-22 17:05:22 |
| 2 | Hi | 2017-11-22 17:08:37 |
+----+---------+---------------------+
2 rows in set (0.00 sec)
上記の結果セットを見ると、現在時刻から1分後にメッセージ「Hi」がテーブルに保存されていることがわかります。
構文のポイント
- ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE:イベントの実行時刻を、現在時刻から1分後に指定しています。INTERVALの値を変更すれば、任意の時間間隔を設定できます。
- ON COMPLETION PRESERVE:イベントの実行完了後もイベント定義を削除せずに保持します。この句を省略した場合、デフォルトではイベントは実行後に自動的に削除されます。
- DO:イベント実行時に処理されるSQLステートメントを指定します。
なお、イベントを利用するには、MySQLサーバーでイベントスケジューラが有効になっている必要があります。SHOW VARIABLES LIKE 'event_scheduler';を実行し、値がONになっていることを事前に確認しておきましょう。
-
MySQLで条件に基づいてテーブルから値を取得するビューを作成する方法
MySQLにおいて、特定の条件に基づいてテーブルから値を取得するビュー(VIEW)を作成したい場合は、ビューを作成する際にWHERE句を使用します。WHERE句で指定した条件に一致する行だけがビューに格納され、以降そのビューを参照するたびに条件に合致したデータのみが表示されます。基本構文WHERE句付きのMySQLビューを作成する構文は以下のとおりです。Create View view_name AS Select_statements FROM table WHERE condition(s);具体例それでは、実際のデータを使ってこの概念を確認してみましょう。ここでは次のような studen
-
MySQLビューでBETWEEN演算子を使ってベーステーブルから値の範囲を選択する方法
MySQLのBETWEEN演算子は、指定した範囲内の値を選択するために使用される演算子です。このBETWEEN演算子はビュー(VIEW)と組み合わせることもでき、ベーステーブルから特定の範囲に該当するデータだけを抽出したビューを作成することが可能です。ここでは、次のようなデータを持つベーステーブル「student_info」を例に、具体的な使い方を解説します。mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subj