MySQL Event Scheduler

Check Events

show events from database_name;

To show more detail about a specific event...

show create event event_name\G

To show last run time etc...

SELECT *

FROM INFORMATION_SCHEMA.events;

Create Events

Example - Run myprocedure every minute for 1 hour...

CREATE EVENT event_name

ON SCHEDULE EVERY 1 MINUTE

STARTS CURRENT_TIMESTAMP

ENDS CURRENT_TIMESTAMP + INTERVAL 1 HOUR

DO

call myprocedure();

Example - Run myprocedure every day from 20-Jan-2020 to 20-Jan-2030 at 5am...

CREATE EVENT event_name

ON SCHEDULE EVERY 1 DAY

STARTS '2020-01-20 05:00:00'

ENDS '2030-01-20 05:00:00'

DO

call myprocedure();

Example - Run myprocedure once starting after 1 minute...

CREATE EVENT event_name

ON SCHEDULE AT CURRENT_TIMESTAMP + 1 MINUTE

DO

call myprocedure();

ALTER EVENT event_name ENABLE;

Enable Events

If an Event shows as DISABLED you can ENABLE it using this SQL...

ALTER EVENT event_name ENABLE;

Disable Events

If an Event shows as ENABLED you can DISABLE (i.e. prevent it from running) it using this SQL...

ALTER EVENT event_name DISABLE;

Drop Events

DROP EVENT IF EXIST event_name;

Enable Event Scheduler

If there is no event_scheduler process...

SHOW PROCESSLIST;

...then you can start it using...

SET GLOBAL event_scheduler = ON;

Disable Event Scheduler

You can disable the event scheduler using...

SET GLOBAL event_scheduler = OFF;