1、数据库开启事件
--查看事件是否开启
show VARIABLES like 'event%';
-- 事件调度器(event_scheduler)需要处于启用状态
SHOW VARIABLES LIKE 'event_scheduler';
--开启事件
SET GLOBAL event_scheduler = 1;
SET GLOBAL event_scheduler = ON;
--关闭事件
SET GLOBAL event_scheduler = 0;
2、创建事件
--创建事件执行存储过程,
CREATE EVENT IF NOT EXISTS update_status_even
--必选,用于定义执行的时间和时间间隔
ON SCHEDULE EVERY 1 DAY STARTS '2022-11-01 00:10:00'
--可选,用于定义事件是否循环执行,即是一次执行还是永久执行,默认为一次执行,即 NOT PRESERVE
ON COMPLETION PRESERVE COMMENT '每天凌晨12:10点执行一次'
--DO 后面是要执行的SQL,可以是存储过程,也能是其他语句
DO CALL update_status() ;
--100秒执行一次
CREATE EVENT IF NOT EXISTS update_status_even
ON SCHEDULE EVERY '100' SECOND STARTS '2022-11-29 10:01:00'
ON COMPLETION PRESERVE COMMENT '每隔100秒执行一次更新'
DO CALL update_status();
3、删除事件
--删除事件
DROP EVENT IF EXISTS e_test;
4、查看事件
--查看系统中所有的事件
SHOW EVENTS;
--查看事件的具体信息 EVENT_SCHEMA= 所在的数据库库名
SELECT * FROM information_schema.events WHERE EVENT_SCHEMA='db_name1' ;
5、开启/关闭事件
--开启事件
alter event 事件名 on completion preserve enable;
--关闭事件
alter event 事件名 on completion preserve disable;