MySql如何创建定时器呢?

欣喜 Java每日一问 发布时间:2024-01-18 10:11:46 阅读数:3908 1
下文笔者讲述mysql创建定时器的方法及示例分享,如下所示

查看定时器及开启定时器

 
-- 查看定时器状态;OFF=关闭,ON=开启
SHOW VARIABLES LIKE '%event_sche%'

-- 开启定时器
SET GLOBAL event_scheduler=1

-- 以上的改法在数据库重启后将会恢复为原来状态,要想数据库重启后也可以让event_scheduler开启,则需要在配置文件my.ini的设置。修改如下,然后重启mysql服务即可。
-- [mysqld]event_scheduler=ON
-- 删除存储过程
DROP PROCEDURE set_test_info_status_proce;
-- 创建存储过程
DELIMITER $$
USE `you_db`$$
DROP PROCEDURE IF EXISTS `set_test_info_status_proce`$$
CREATE PROCEDURE `set_test_info_status_proce`()
BEGIN
UPDATE contract_user_combo_info SET update_time=NOW(),update_by='set_test_info_status_event',`is_valid` = 'N' WHERE `enable`='Y' AND is_valid = 'Y' AND end_time <= NOW();
END$$
DELIMITER ;

-- 删除定时器
DROP event set_test_info_status_event;
-- 创建定时器
DELIMITER $$
CREATE event set_test_info_status_event
-- 下面这句的意思是:从2020-08-13 23:59:00开始每天23:59:00秒执行set_test_info_status_proce()存储过程
ON SCHEDULE EVERY 1 DAY STARTS '2020-08-13 23:59:00'
ON COMPLETION PRESERVE DISABLE
DO CALL set_test_info_status_proce(); $$
DELIMITER ;

ALTER event set_test_info_status_event ON COMPLETION PRESERVE ENABLE; //开启定时任务
ALTER event set_test_info_status_event ON COMPLETION PRESERVE DISABLE;//关闭定时任务

-- 查看事件执行情况,其中LAST_EXECUTED字段会反映出相应的事件最近一次的执行时间
SELECT * FROM information_schema.EVENTS;
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaProblem/202401/7696.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者