MySQLのイベントスケジューラを使った時の覚書です。
#環境
MySQL 5.6.16
#設定方法
###1.スケジューラ設定を確認
イベントスケジューラを使うには、MySQLの変数'event_scheduler'の値をONにしてあげる必要があります。
まずは現在の設定がどうなっているか確認します。
show variables like '%event%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | OFF |
+-----------------+-------+
オフになっていたので、ONにします。
set GLOBAL event_scheduler=ON;
再度設定を確認。オンになっています。
show variables like '%event%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
###2.イベントを作成
基本的な構文は以下です。
CREATE EVENT <イベント名> ON SCHEDULE <スケジュール> DO <実行するクエリ>
【詳細】https://dev.mysql.com/doc/refman/5.6/ja/create-event.html
SCHEDULEは、'AT <タイムスタンプ>'または'Every <インターバル>'を指定します。
今回は、毎日0:00に実行したいので'on schedule'に'every 1 day'、
'starts'に明日の0:00:00を指定します。
delimiter $$
create event <イベント名>
on schedule every 1 day
starts '2018-XX-XX 00:00:00'
do
begin
<ここにクエリを書く>
end$$
delimiter ;
これでイベントが作成されました。
作成したイベント一覧を確認するには、以下コマンドを使います。
show events
###3.イベントの編集
作成したイベントを編集するには、'alter event'を使用します。
'create event'と構文は同じです。
delimiter $$
alter event <イベント名>
on schedule every 1 day
starts '2018-XX-XX 00:00:00'
do
begin
<ここにクエリを書く>
end$$
delimiter ;
###4.イベントの削除
イベントの削除には、'drop event'を使用します。
後ろにイベント名を指定してあげるだけでOKです。
drop event event_name