MySql数据库定时任务设置,有案例参考

本文提供了三个案例来展示如何在MySQL中设置定时任务。案例一和案例二涉及每天增加kpi_value字段的值,分别在每天凌晨和每五分钟执行一次。案例三则展示了如何设置一个定时任务,在每天的23:59更新input_date字段为次日的日期。
摘要由CSDN通过智能技术生成
--案例一
-- 1、设置数据库定时任务开启
set GLOBAL event_scheduler = ON;

效果如下:
在这里插入图片描述

-- 创建定时任务kpi_name为“xxxx"的kpi_value值每过一天自动加一
--update_ltc为定时任务起的函数名
--kpi表名
--kpi_value字段值
CREATE PROCEDURE update_ltc() UPDATE kpi SET kpi_value=kpi_value+1 where kpi_name="XXXXXXXXX";

--如果名为update_ltc的定时任务不存在
--定时任务从1-7日凌晨开始
CREATE EVENT if not EXISTS update_ltc
on SCHEDULE EVERY 1 DAY STARTS '2023-01-07 00:00:00'
ON COMPLETION PRESERVE
do CALL update_ltc();

--案例二
--名为test_ltc的定时任务,每五分钟kpi_value值+1
CREATE PROCEDURE test_ltc() UPDATE kpi SET kpi_value=kpi_value+1 where kpi_name="XXXXXX";

CREATE EVENT if not EXISTS test_ltc
on SCHEDULE EVERY 5 MINUTE STARTS CURDATE()
ON COMPLETION PRESERVE
do CALL test_ltc();

-- 查询数据库有的定时任务
select * from information_schema.EVENTS;

--删除名为test_inputdate的定时任务
drop event test_inputdate;

-- 案例三 
--每过24h  将当前时间字段的时间设置为下一天
--即今天是5号,过了凌晨这个7号就要变成明天的8号日期

--创建名为upad_inputdate的定时任务
--input_date为要设置日期+1的字段
CREATE PROCEDURE upad_inputdate() UPDATE kpi SET input_date=DATE_SUB(CURRENT_DATE,INTERVAL -1 DAY) where kpi_name="XXXXXX";

-- 从1月7日晚上23点59分执行定时任务
--这里为什么不是凌晨呢,因为凌晨时候已经是6号了,执行的定时任务就是8+1, 多了一天
--如果是7号的23:59:00,那么执行的就是7+1,正好是次日啦

CREATE EVENT if not EXISTS upad_inputdate
on SCHEDULE EVERY 1 DAY STARTS '2023-02-07 23:59:00'
ON COMPLETION PRESERVE
do CALL upad_inputdate();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值