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;
Bibliography
https://www.mysqltutorial.org/mysql-triggers/working-mysql-scheduled-event/ https://dev.mysql.com/doc/refman/8.0/en/show-create-event.html https://www.tutorialspoint.com/How-can-we-ENABLE-AND-DISABLE-a-particular-MySQL-eventhttps://www.mysqltutorial.org/mysql-triggers/working-mysql-scheduled-event/ https://stackoverflow.com/questions/32572953/finding-when-mysql-event-last-ran