关于SqlServer和MySql数据库如何做一个定时执行任务
转载请标明出处:
https://blog.****.net/weixin_41965979/article/details/90700370
本文出自付付讶的博客
最近开发项目遇到一个需要每天定时清除过期的数据 . 实现定时自动处理的功能
以前都是在代码里写定时任务
今天在网上查了一些直接在数据库里操作的方法,SqlServer和MySql都成功了,遂总结一下。
一:SqlServer2008数据库
1:打开sqlserver数据库,进入“SQL Server代理”,看到“作业”,选择“作业”右键,点击“新建作业”,
2:进去后选择第一个“常规”,填写“名称”,类别选择“数据库维护”,说明可填可不填
3:然后选择第二个步骤,点击新建,输入步骤名称,选择你自己的数据库,在命令里输入你要执行的sql语句
4:然后选择第三个计划,点击新建,填写名称,根据自己的需要来选择频率和时间点和日期,我这是让它每天下午4点37执行,
执行的是你上面命令里写的sql语句
5:执行结果展示(我的sql语句写的是修改ipTable里的number值,需求是每天到点给它清零)
这张图是16:36分的时候,我的number值为5,我设的执行时间为16:37分
16:37分的时候,我刷新数据库,已经变成0了
二、MySql数据库-For使用navicat11.2.7版本
1、启动navicat,连接数据库。
2、可以先查看定时任务的是否开启。通过以下命令:
show variables like '%sche%';
3、如果其设置值为为 OFF 或 0 ,通过执行下列语句,来开启event_scheduler,把它设置为设为ON 或 1。
set global event_scheduler =1
4、新建一个函数,选择过程,点击完成。
5、写上你要执行的sql语句,ctril+s保存输入你的过程名。
6、新建事件,在定义里写: call deletePatrolTrack() --也就是之前定义的函数过程名。
选择旁边的“计划”选项卡,选中EVERY,填上1、DAY(顾名思义就是每天执行的意思),勾上STARTS,填上你的开始时间, 然后ctril+s输入名称保存就行。 ENDS就是结束时间,这里大家根据自己的需要去填写就行!