mysql事件调度器使用
--设置事件调度器 开启
SET GLOBAL event_scheduler = ON;
--查看事件调度器 是否开启 on开 off关
SHOW VARIABLES LIKE 'event_scheduler';
创建表:
DROP TABLE IF EXISTS `szl`;
CREATE TABLE `szl` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`uname` varchar(20) DEFAULT NULL,
`lastupdate` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
事件调度器 每10秒 向szl表插入数据:
CREATE EVENT szl_evt_insert
ON SCHEDULE EVERY 10 SECOND
DO
INSERT INTO szl(uname, lastupdate) VALUES('Jimmy Shan', NOW());
说明:
szl_evt_insert 事件名称
EVERY 10 SECOND 每隔10秒执行
DO 需要做的事
-------------------------------------------------------------------------------
mysql在每天指定时间执行的事物建立方法:
DROP EVENT if EXISTS 事物名称;
CREATE EVENT事物名称
ON SCHEDULE EVERY 1 DAY
STARTS '2014-06-25 18:50:00'
DO CALL c managerloginsert;
关键是STARTS '2014-06-25 18:50:00' 句 指定开始日期及时间 那么第二次执行是就会18:50:00开始
想想为啥?因为这里ON SCHEDULE EVERY 1 DAY 指定一天 第一次开始执行的时间是18:50:00 下次再执行
必须到一天 24小时 。
-------------------------------------------------------------------------------
5天后清空表记录:
CREATE EVENT szl_evt_insert
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO
TRUNCATE TABLE szl;
-------------------------------------------------------------------------------
指定在2014-06-25 17:00:00清空表记录:
CREATE EVENT szl_evt_insert
ON SCHEDULE AT TIMESTAMP '2014-06-25 17:00:00'
DO
TRUNCATE TABLE szl;
-------------------------------------------------------------------------------
每天定时清空表:
CREATE EVENT szl_evt_insert
ON SCHEDULE EVERY 1 DAY
DO
TRUNCATE TABLE szl;
-------------------------------------------------------------------------------
5天后开启每天定时清空表:
CREATE EVENT szl_evt_insert
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO
TRUNCATE TABLE szl;
-------------------------------------------------------------------------------
每天定时清空表,5天后停止执行:
CREATE EVENT szl_evt_insert
ON SCHEDULE EVERY 1 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO
TRUNCATE TABLE szl;
-------------------------------------------------------------------------------
5天后开启每天定时清空表,一个月后停止执行:
CREATE EVENT szl_evt_insert
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH
DO
TRUNCATE TABLE szl;
[ON COMPLETION [NOT] PRESERVE]可以设置这个事件是执行一次还是持久执行,默认为NOT PRESERVE。
-------------------------------------------------------------------------------
每天定时清空表(只执行一次,任务完成后就终止该事件):
CREATE EVENT szl_evt_insert
ON SCHEDULE EVERY 1 DAY
ON COMPLETION NOT PRESERVE
DO
TRUNCATE TABLE szl;
[ENABLE | DISABLE]可是设置该事件创建后状态是否开启或关闭,默认为ENABLE。
[COMMENT ‘comment']可以给该事件加上注释。
-------------------------------------------------------------------------------
修改事件(ALTER EVENT)
ALTER EVENT event_name
[ON SCHEDULE schedule]
[RENAME TO new_event_name]
[ON COMPLETION [NOT] PRESERVE]
[COMMENT 'comment']
[ENABLE | DISABLE]
[DO sql_statement]
1) 临时关闭事件
ALTER EVENT e_test DISABLE;
2) 开启事件
ALTER EVENT e_test ENABLE;
3) 将每天清空test表改为5天清空一次:
ALTER EVENT e_test
ON SCHEDULE EVERY 5 DAY;
删除事件(DROP EVENT)
语法很简单,如下所示:
DROP EVENT [IF EXISTS] event_name
例如删除前面创建的e_test事件
DROP EVENT e_test;
当然前提是这个事件存在,否则会产生ERROR 1513 (HY000): Unknown event错误,因此最好加上IF EXISTS
DROP EVENT IF EXISTS e_test;
mysql事件调度器使用的更多相关文章
- mysql 事件调度器
1.mysql事件调度器,也就是计划任务,计划做某事,有两种方式: 2.在某个时间点做某事,AT TIMESTAMP [+ INTERVAL INTERVAL] 某个时间点加上偏移. 3.定时地做某事 ...
- mysql事件调度器
#查看mysql事件调度器是否开启 SHOW VARIABLES WHERE Variable_name = 'event_scheduler'; #开启mysql事件调度器功能 SET GLOBAL ...
- MySQL事件调度器event的使用
Q:假设,有一个需求,希望在某一个时刻系统调用一个begin end执行一下:十分钟以后执行一下begin end.亦或有一个需求,每个多长时间周期性执行begin end.那么这个时候该怎么办呢? ...
- MySQL事件调度器Event Scheduler
我们都知道windows的计划任务和linux的crontab都是用来实现一些周期性的任务和固定时间须要运行的任务. 在mysql5.1之前我们完毕数据库的周期性操作都必须借助这些操作系统实现. 在m ...
- mysql事件调度器定时删除binlog
MySQL5.1.6起Mysql增加了事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由Linux操作系统的计划任务来执行的工作MySQL的事件调度器可以精确 ...
- mysql事件调度器功能
一.前言 自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系 ...
- Mysql事件调度器学习
在cassandra数据库中,有一个叫做TTL的功能,即插入一条记录时,可以指定某一字段对应的TTL值,比如30s,那么当TTL到达30s后该条记录就会被自动删除.目前MySQL并未直接提供TTL的功 ...
- MySQL的事件调度器
自MySQL5.1.0起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,可以看作基于时间的触发器. 一.开启 事件调度默认是关闭的,开启可执行 ...
- MySQL计划任务(事件调度器)(Event Scheduler)
http://www.cnblogs.com/c840136/articles/2388512.html https://dev.mysql.com/doc/refman/5.7/en/events- ...
随机推荐
- 【.NET异步编程系列3】取消异步操作
在.Net和C#中运行异步代码相当简单,因为我们有时候需要取消正在进行的异步操作,通过本文,可以掌握 通过CancellationToken取消任务(包括non-cancellable任务). 早期 ...
- Vue 进阶之路(六)
上篇文章我们分析了一下 vue 中的条件渲染,本篇我们说一下 vue 中的列表渲染和 set 方法. <!DOCTYPE html> <html lang="en" ...
- SpringBoot自动配置原理
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾前面Spring的文章(以学习的顺序排好): S ...
- WebApi用户登录验证及服务器端用户状态存取
最近项目需要给手机端提供数据,采用WebApi的方式,之前的权限验证设计不是很好,这次采用的是Basic基础认证. 1.常见的认证方式 我们知道,asp.net的认证机制有很多种.对于WebApi也不 ...
- ["1", "2", "3"].map(parseInt)`返回的结果是[1,2,3]?
今天刷到一道面试题,["1", "2", "3"].map(parseInt)返回的结果是什么呢?可能大家第一个想到的是 [1,2,3],但 ...
- 粮草先行——Android折叠屏开发技术点番外篇之运行时变更处理原则
上一篇文章中,我们有提到Activity在屏幕尺寸发生变更时的处理方式,总共有两种: 重启APP以适应屏幕改变: 手动处理数据,避免APP重启. 同样,这两种方式也同时适用于改变屏幕方向.更改系统语言 ...
- lunix脚本进程挂掉时显示cpu和内存信息及挂掉的时间
#!/bin/shwhile [ true ]; do #查询是否有8899正在运行的进程netstat -an|grep 8899if [ $? -ne 0 ]thennowtime=$(date ...
- LOJ #6051. 「雅礼集训 2017 Day11」PATH
完了感觉最近留了好多坑的说,这题也是模模糊糊地会一点 首先我们发现题目要求的是单调不上升的序列个数,那么一个套路就是用值减去下标 然后考虑连续位置的限制,这个我们做一个置换然后尽量向后取 这样拿值和位 ...
- 在.NET MVC 中使用Highcharts+Ajax+Json生成动态曲线图,柱状图,饼图
开发背景: 今天在做一个关于商城后台金额报表统计的功能,为了让数据直观明了并且这个报表还需要在手机端自适应所以我决定采用HIghCharts插件下的的报表,大家也可以去了解一下免费开源主要是好看. 首 ...
- 10分钟详解Spring全家桶7大知识点
Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC.SpringBoot.Spring Cloud.Spring Cloud Dataflow等解决方案.有人亲切的称之为 ...