MySQL存储过程和定时任务
本文档主要介绍如何利用MySQL存储过程和Event事件结合起来,实现数据的定时处理工作
1.创建数据表
create table t1(id int ,name varchar(30))
2.创建存储过程
创建存储过程
delimiter // CREATE PROCEDURE `insert_t1` () BEGIN SET autocommit = 0; INSERT INTO t1 (id, name) select version, table_name from information_schema.TABLES; COMMIT; END // delimiter;
存储过程管理
drop procedure insert_t1; --删除存储过程 call insert_t1(); --调用存储过程 show create procedure ; --查看存储过程定义
3.创建定时任务
语法:
CREATE Event [IF NOT EXISTS] event_name -- 创建使用create event ON SCHEDULE schedule -- on schedule 什么时候来执行,执行频率 ,时间间隔可设置为second、minute、hour、day、week、month、year ,可设置固定开始时间date_add(date_add( current_date(), INTERVAL 1 day), INTERVAL 1 hour) [ON COMPLETION [NOT] PRESERVE] -- 调度计划执行完成后是否还保留,默认是Not Preserve,表示只执行一次 [ENABLE | DISABLE] -- 是否开启事件,默认开启 [COMMENT 'comment'] -- 事件的注释 DO event_body; -- 这个调度计划要做什么?
查看环境变量,是否允许创建和使用event,如果不允许则设置全局环境变量开启event使用
show variables like 'event_scheduler'; set global event_scheduler=1;
创建定时任务
create event event_demo01 on schedule every 1 minute starts date_add(now(),interval 1 minute) on completion PRESERVE do call insert_t1();
定时任务管理
alter event event_demo01 on completion preserve enable; -- 开启定时任务 alter event event_demo01 on completion preserve disable; -- 关闭定时任务 drop event if exists event_demo01 ; --删除定时任务 select event_name,event_definition,interval_value,interval_field,status from information_schema.events; --查看定时任务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2018-03-29 Oracle案例03——RMAN-06091: no channel allocated for maintenance (of an appropriate type)