2023年7月21日发(作者:)
MySQL数据库定时任务脚本今天遇到的业务为了减少服务器压⼒、提⾼性能、少写Java代码,所以需要写数据库定时脚本来完成。⼀、查看定时器、打开定时器-- 开启eventSET GLOBAL event_scheduler='ON';-- 查看定时器SHOW VARIABLES LIKE 'event_scheduler';⼆、写存储过程供定时任务调⽤DELIMITERDROP PROCEDURE IF EXISTS 存储过程名_proce; -- 避免出错,如果有这个名字就删除CREATE PROCEDURE 存储过程名_proce() -- 更新设备⼼跳状态存储过程 BEGIN DECLARE t_error INTEGER DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; START TRANSACTION; -- 开启事务 -- 定时脚本需要执⾏的SQL -- 这⾥写需要执⾏的SQL语句,如果不涉及到事务,去掉事务相关的代码 IF t_error=1 THEN ROLLBACK; ELSE COMMIT; END IF; SELECT t_errot; -- 返回标识位的结果集
END;DELIMITER;三、写定时任务DROP EVENT IF EXISTS 事件名称_event;CREATE EVENT 事件名称_event -- 创建⼀个事件每60秒执⾏⼀次 ON SCHEDULE EVERY 60 SECOND ON COMPLETION PRESERVE DISABLE DO CALL 存储过程名称_proce();四、开启定时任务-- 开启事件ALTER EVENT 事件名称_event ON COMPLETION PRESERVE ENABLE;五、到这⾥就完成了,⼀个完整的数据库脚本,直接运⾏即可。(亲测可⽤,已经跑在了我们数据库服务器上)。 这⾥附上关闭事务和查看⾃⼰写的所有事务所需代码-- 关闭事件-- ALTER EVENT 事件名称_event ON COMPLETION PRESERVE DISABLE;-- 查看⾃⼰创建的event-- SELECT * FROM mysql.`event`;六、我们学的更多的是解决问题的能⼒。本⽂参考了两篇博客,这⾥分享给⼤家。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689929064a295155.html
评论列表(0条)