【MySQL】イベントスケジューラ

■ イベントスケジューラ

 * 日付や時間に従って自動的に実行されるタスク

■ イベントの有効/無効の確認および設定

select @@global.event_scheduler;

# ONにする
set global event_scheduler=ON;

■ イベントの作成

構文

delimiter //
CREATE EVENT 【イベント名】
ON SCHEDULE 【イベント間隔】
STARTS 【イベント開始日時】
COMMENT 【コメント文】
DO
BEGIN
  -- 【この中に実行するSQLを記述】
END;
//
【イベント間隔】
-- 10分後
ON SCHEDULE EVERY 10 MINUTE

-- 毎日
ON SCHEDULE EVERY 1 DAY

-- 毎月
ON SCHEDULE EVERY 1 MONTH

サンプル

delimiter //
CREATE EVENT `hello_event`
ON SCHEDULE EVERY 1 DAY
STARTS '2018-03-10 20:40:00'
COMMENT 'Hello World for event scheduler.'
DO
BEGIN
  CALL say_hello('World');
END;
//
* ストアド「say_hello」は、以下の関連記事を参照のこと
https://blogs.yahoo.co.jp/dk521123/37433118.html

■ イベントの表示

SHOW EVENTS;

# イベントの内容を確認
-- SHOW CREATE EVENT 【イベント名】;
SHOW CREATE EVENT hello_event;

■ イベントの削除

構文

DROP EVENT IF EXISTS 【イベント名】;

サンプル

DROP EVENT hello_event;


関連記事

MySQL】ストアドプロシージャ / ストアドファンクション

https://blogs.yahoo.co.jp/dk521123/37433118.html

MySQL】トリガー

https://blogs.yahoo.co.jp/dk521123/37433982.html