mysql定时任务(Navicat)
目录
- 需求
- 分析
- 实现
需求
项目上线了,但是需要做个功能去统计每天的系统的使用情况。然后将统计的结果存到表中。
分析
统计的代码很简单,但是这边考虑到项目已经上线,如果把统计的功能放到java代码里面,还需要重新去部署,并且这个功能只是给我们开发自己看的,所以就不打算把功能写在java代码里面了。然后就考虑到用mysql的定时任务。每天固定的时间去统计前一天的数据。然后存到表里面。
在mysql 5.1中新增了一个特色功能事件调度器(Event Scheduler),简称事件。它可以作为定时任务调度器,取代部分原来只能用操作系统的计划任务才能执行的工作。另外,更值得一提的是,mysql的事件可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下是非常实用的。
事件调度器是定时触发执行的,从这个角度上看也可以称作是“临时触发器”。但是它与触发器又有所区别,触发器只针对某个表产生的事件执行一些语句,而事件调度器则是在某一段(间隔)时间执行一些语句。
我用的数据库的版本是5.7.25
实现
先去查下mysql的版本是否支持
SELECT VERSION();
版本不支持的话,得去升级到相应的版本
查下mysql是否开启事件调度
事件由一个特定的线程来管理。启用事件调度器后,拥有SUPER权限的账户执行SHOW PROCESSLIST就可以看到这个线程了。
SHOW VARIABLES LIKE 'event_scheduler';
如果值是OFF或者是1;说明没有开启。用SET GLOBAL命令可以开启或关闭事件。将event_scheduler参数的值设置为ON,则开启事件;如果设置为OFF,则关闭事件。(设置系统变量)
我的是已经开启过了,下面贴上开启和关闭的sql;
开启
SET GLOBAL event_scheduler = ON;
关闭
SET GLOBAL event_scheduler = OFF;
注意:通过上面命令开启,是临时开启,mysql重启之后,就没有效果了。如果想要始终开启事件,需要在my.ini(Windows系统)/my.cnf(Linux系统)中添加event_scheduler=on
。
创建事件
用Navicat
在开启之后,就可以点图中的那个事件。
再点新建事件
定义这块是写需要执行的代码的。也可以先定义好存储过程,或者函数,在这里直接调用也是可以的。
定义者:指定当在事件运行时检查访问权限要使用的用户帐号。默认定义者值是运行 CREATE EVENT 语句的的用户。(和DEFINER = CURRENT_USER 相同。)如果给予一个用户值,它应该是一个 ‘user_name’@‘host_name’ 格式的MySQL 帐号(使用与 GRANT 语句相同的格式)。user_name 及 host_name 值都是必须的。
状态:可以创建一个事件但可以用 DISABLE 关键字保持不激活。或者可以用 ENABLE 默认状态,这是激活。
ON COMPLETION:正常情况下,一旦事件已过期,它将立即删除。可以通过指定 ON COMPLETION PRESERVE 来重写此性能。ON COMPLETION NOT PRESERVE 只是使默认非持久性的性能明确。
计划就是定时任务执行的周期AT:包含日期和时间,或必须是一个解析为 datetime 值的表达式。使用+INTERVAL 来创建一个事件,它发生在与当前日期和时间有关的将来某个时刻。
EVERY:在定期间隔重复的行动,可以在 EVERY 子句之后加 interval。(+INTERVAL 与 EVERY 不能同时使用。)STARTS:EVERY 子句还可能包含一个非必须的 STARTS 子句。STARTS 之后的 timestamp 值表示行动应该何时开始重复,也可以用+INTERVAL 间隔指定「由现在开始」的时间量。
例如:EVERY 3 MONTH STARTS CURRENT_TIMESTAMP + 1 WEEK 的意思是「每 3 个月,从现在起一周后开始」。ENDS:EVERY 子句还可包含一个非必须的 ENDS 子句。ENDS 关键字之后的 timestamp 值告诉 MySQL 何时停止重复事件。也可以用+INTERVAL 间隔与 ENDS 一起。
例如:EVERY 12 HOUR STARTS CURRENT_TIMESTAMP + INTERVAL 30 MINUTE ENDS CURRENT_TIMESTAMP + INTERVAL 4 WEEK 相当于「每十二个小时,从现在起三十分钟后开始,并于现在起四个星期后结束」。
备注:timestamp 是必须发生在未来不能安排在过去的一个事件。interval 区间由两部份组成,数量和时间单位。
*YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND
这个就是注释。
定义好就有预览的sql。
都设置好以后,设置好名字,点击保存。然后到你指定的时间就可以运行了。
mysql定时任务(Navicat)相关推荐
- navicat创建MySql定时任务详解
目录 navicat创建MySql 定时任务详解 一.开起定时任务 二.通过navicat创建定时任务 三.关闭.启动.别名.移动.删除event 四.查询Event信息 navicat创建MySql ...
- navicat创建mysql定时任务_navicat创建MySql定时任务的方法详解
navicat创建MySql 定时任务详解 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的" ...
- Navicat设定mysql定时任务!
Navicat设定mysql定时任务! 需求:每天将一张表的前一天的数据抽取到另一张表中,使用Mysql数据库的客户端Navicat配置 第一步,创建过程cust_report,直接在查询窗口中执 ...
- navicat mysql 计划任务_navicat创建MySql定时任务的方法详解
navicat创建MySql 定时任务详解 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的" ...
- Mysql定时任务,最简单例子
一个最简单的定时任务讲解: 新手入门,直接打开数据库可视化工具,mysql推进Navicat ,进入到相应的数据当中,进入事件模块 1.新建事件:SQL 如下 BEGIN "具体的SQL语句 ...
- mysql定时任务 每日执行存储过程
原文链接:mysql定时任务 每日执行存储过程 1.操作工具Navicat数据库操作工具. 2.创建一个存储过程 例如:delete From apply_setdtl where DATE(crea ...
- linux设置mysql定时任务_Linux下如何实现Mysql定时任务
假设前提:每天晚上10点到早上5点,每10分钟定时执行存储过程. 实现方式: 第一种是利用mysql本身实现,制定event定时任务,可以借助navicat for mysql或其他数据库开发工具去做 ...
- 关于MySQL连接Navicat Premium 12失败的解决方法
关于MySQL连接Navicat Premium 12失败的解决方法 参考文章: (1)关于MySQL连接Navicat Premium 12失败的解决方法 (2)https://www.cnblog ...
- linux设置mysql定时任务_原创 Linux下实现Mysql定时任务备份数据
本实例将创建目录放置于/mnt目录下,可根据具体情况放置于其他目录: cd /mnt mkdir dbback pwd /mnt/dbback 创建shell脚本 脚本名称可根据自己规范进行自定义: ...
- ubuntu mysql navicat_Ubuntu搭建MySQL,Navicat Premium连接
Ubuntu搭建MySQL,Navicat Premium连接 首先,撤销 (Ctrl Z)我们需要使用apt安装mysql,命令如下: sudo apt install mysql-server 安 ...
最新文章
- c程序封装linux,Linux系统使用C语言封装线程读写锁
- java如何添加同名的xml节点_jaxb怎么解析多个同名元素
- Spring Boot中防表单重复提交以及拦截器登录检测
- scrapy爬取汽车之家宝马5系图片
- TCP三次握手建立连接和四次挥手关闭连接
- java中怎么把系统格式化_如何在java中格式化1200到1.2k
- 鱼和熊掌兼得---STM32调试接口SW动态复用为GPIO的方法
- EDA课程设计(设计一个4时隙的时分复用模块)
- 【阿里云】视频点播开通与配置
- 红外额温枪方案(包含原理图和PCB文件)
- C++ exception with description “bad optional access“ thrown in the test body.
- 浏览器突然不能上网,DNS问题
- 2D降噪3D降噪(NR:Noise Reduce)
- 正则表达式收藏(三)之高级技巧
- C#串口通信从入门到精通(3)——虚拟串口工具的使用
- windows环境下netcat的安装及使用
- 网络七层协议:OSI七层协议大白话解读
- Bootstrap carousel轮转图的使用
- connect的中文意思是什么_connect是什么意思?
- Spring Data JPA-JPA对象的四种状态
热门文章
- 重庆SEO优化:网站通过SEO优化会有哪些好处以及【SEO优化】 深度了解蜘蛛spider抓取原理-专业SEO技术教程
- 基于IC5000如何利用iSYSTEM winIDEA烧写+调试程序
- python获取上一级目录
- Ubuntu 微信QQ企业微信不能输入中文
- linux科学计算器_2个适用于Linux桌面的科学计算器
- 中国神童13岁免试上大学,极端荣耀后却选择出家为僧!
- 虚拟机LINUX系统下安装JKD(附详细操作过程截图)
- python 元组使用场景_列表和元组(三):列表和元组的性能以及使用场景
- 自己制作的粉碎机批处理程序
- TCHAR char wchar_t 的区别