最近开发项目遇到一个需要每天定时清除过期的数据 . 实现定时自动处理的功能 

以前都是在代码里写定时任务

今天在网上查了一些直接在数据库里操作的方法,SqlServerMySql都成功了,遂总结一下。

一:SqlServer2008数据库

1:打开sqlserver数据库,进入“SQL Server代理”,看到“作业”,选择“作业”右键,点击“新建作业”,

什么是MySQL的定时任务 mysql定时执行sql_数据库

2:进去后选择第一个“常规”,填写“名称”,类别选择“数据库维护”,说明可填可不填

什么是MySQL的定时任务 mysql定时执行sql_触发器_02

3:然后选择第二个步骤,点击新建,输入步骤名称,选择你自己的数据库,在命令里输入你要执行的sql语句

什么是MySQL的定时任务 mysql定时执行sql_定时任务_03

4:然后选择第三个计划,点击新建,填写名称,根据自己的需要来选择频率和时间点和日期,我这是让它每天下午4点37执行,

执行的是你上面命令里写的sql语句

什么是MySQL的定时任务 mysql定时执行sql_触发器_04

5:执行结果展示(我的sql语句写的是修改ipTable里的number值,需求是每天到点给它清零)

这张图是16:36分的时候,我的number值为5,我设的执行时间为16:37分

什么是MySQL的定时任务 mysql定时执行sql_数据库_05

16:37分的时候,我刷新数据库,已经变成0了

什么是MySQL的定时任务 mysql定时执行sql_数据库_06

二、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、新建一个函数,选择过程,点击完成。

什么是MySQL的定时任务 mysql定时执行sql_sqlserver_07

 

 5、写上你要执行的sql语句,ctril+s保存输入你的过程名。

什么是MySQL的定时任务 mysql定时执行sql_触发器_08

6、新建事件,在定义里写: call deletePatrolTrack()  --也就是之前定义的函数过程名。

什么是MySQL的定时任务 mysql定时执行sql_sqlserver_09

      选择旁边的“计划”选项卡,选中EVERY,填上1、DAY(顾名思义就是每天执行的意思),勾上STARTS,填上你的开始时间,        然后ctril+s输入名称保存就行。 ENDS就是结束时间,这里大家根据自己的需要去填写就行!

      

什么是MySQL的定时任务 mysql定时执行sql_触发器_10