mysql定时任务
mysql定时任务
mysql定时任务一、查看事件调度器是否开启
SHOW VARIABLES LIKE 'event_scheduler';
--或
SELECT @@event_scheduler;
--或
SHOW PROCESSLIST;
如果显示OFF,则输入以下语句开启
SET GLOBAL event_scheduler = ON;
备注
虽然这里用set global event_scheduler = on语句开启了事件,但是每次重启电脑,或重启mysql服务后,会发现,事件自动关闭(event_scheduler=OFF),所以想让事件一直保持开启,最好修改配置文件,让mysql服务启动的时候开启时间,只需要在my.ini配置文件的[mysqld]部分加上event_scheduler=ON 即可。
二、创建事件
1、语法
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
schedule:
AT TIMESTAMP [+ INTERVAL INTERVAL]
| EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]
INTERVAL:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
2、参数说明
(1)、DEFINER: 定义事件执行的时候检查权限的用户。
(2)、ON SCHEDULE schedule: 定义执行的时间和时间间隔。
(3)、ON COMPLETION [NOT] PRESERVE: 定义事件是一次执行还是永久执行,默认为一次执行,即NOT PRESERVE。
(4)、ENABLE | DISABLE | DISABLE ON SLAVE: 定义事件创建以后是开启还是关闭,以及在从上关闭。如果是从服务器自动同步主上的创建事件的语句的话,会自动加上DISABLE ON SLAVE。
(5)、COMMENT 'comment': 定义事件的注释。
3、创建实例
创建如下表
CREATE TABLE aaa (timeline TIMESTAMP);
1)、首先来看一个简单的例子来演示每秒插入一条记录到数据表
CREATE EVENT e_test_insert
ON SCHEDULE EVERY 1 SECOND
DO INSERT INTO test.aaa VALUES (CURRENT_TIMESTAMP);
2) 、5天后清空test表
CREATE EVENT e_test
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO TRUNCATE TABLE test.aaa;
3) 、2007年7月20日12点整清空test表
CREATE EVENT e_test
ON SCHEDULE AT TIMESTAMP '2007-07-20 12:00:00'
DO TRUNCATE TABLE test.aaa;
4) 、每天定时清空test表
CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
DO TRUNCATE TABLE test.aaa;
5) 、5天后开启每天定时清空test表
CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO TRUNCATE TABLE test.aaa;
6) 、每天定时清空test表,5天后停止执行
CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 5 DAY
DO TRUNCATE TABLE test.aaa;
7) 、5天后开启每天定时清空test表,一个月后停止执行
CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH
DO TRUNCATE TABLE test.aaa;
8) 、每天定时清空test表 (只执行一次,任务完成后就终止该事件)
CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
ON COMPLETION NOT PRESERVE
DO TRUNCATE TABLE test.aaa;
三、修改事件
1、语法
ALTER EVENT event_name
[ON SCHEDULE schedule]
[RENAME TO new_event_name]
[ON COMPLETION [NOT] PRESERVE]
[COMMENT 'comment']
[ENABLE | DISABLE]
[DO sql_statement]
2、实例
1) 临时关闭事件
ALTER EVENT e_test DISABLE;
2) 开启事件
ALTER EVENT e_test ENABLE;
3) 将每天清空test表改为5天清空一次:
ALTER EVENT e_test ON SCHEDULE EVERY 5 DAY;
四、删除事件
1、语法
DROP EVENT [IF EXISTS] event_name
2、实例
删除前面创建的e_test事件
DROP EVENT IF EXISTS e_test
- mysql 多表连接查询(MySQL多表查询的具体实例)
- mysql数据库基本使用方法(详解MySQL 数据库范式)
- mysqlbinlog怎么分析(MySQL中使用binlog时格式该如何选择)
- mysql获取当前日期时间(MySQL DATEDIFF函数获取两个日期的时间间隔的方法)
- mysql优化使用方法(详解Mysql函数调用优化)
- mysql 慢查询日志
- mysql8.0.15安装详细教程(mysql8.0.11数据目录迁移的实现)
- mysql索引原理和优化(Mysql 索引该如何设计与优化)
- python怎样读取mysql数据(使用Python将Mysql的查询数据导出到文件的方法)
- mysql数据库导入错误怎么处理(MySQL数据库导入导出数据之报错解答实例讲解)
- mysql 查询json(MySQL处理JSON常见函数的使用)
- php7用什么替代mysql(mysqli扩展无法在PHP7下升级问题的解决)
- mysql索引分几种(MySQL 覆盖索引的优点)
- mysql建表时指定聚簇索引(一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的)
- druid数据库连接池原理详解(阿里巴巴Druid,轻松实现MySQL数据库加密!)
- 将mysql中的表导出来(MySQL之导出整个及单个表数据的操作)
- 逐渐消失的东北八大怪现象,进步的社会里我们遗失的是什么(逐渐消失的东北八大怪现象)
- 今日大雪,大雪养生这样做,一年都有好气色(大雪养生这样做)
- 粗盐是什么 粗盐的功效与作用(粗盐的功效与作用)
- 会 吃人 的客机 从天堂到地狱只需5分钟,图-104如何做到(会吃人的客机)
- 男人犯的错,为什么要女人来承担(为什么要女人来承担)
- 心理学 四个金蟾,哪个最招财 测你今生的运势有多棒(心理学四个金蟾)
热门推荐
- 如何把织梦建站弄到自己的域名中(织梦建站访问首页时后面都会添加上index.html该如何去掉)
- pythonprint什么意思啊(Python中print和return的作用及区别解析)
- 图片和文字对齐
- 如何用iis7.5设置网站(IIS .7z文件支持下载的添加方法)
- springboot启动内置tomcat(解决spring boot + jar打包部署tomcat 404错误问题)
- react路由原理解析(React配置子路由的实现)
- sql server证书配置(SQL Server Alwayson创建代理作业的注意事项详解)
- js编写一个数组去重的方法(JS实现数组过滤从简单到多条件筛选)
- amaze开发者(AmazeUI中各种的导航式菜单与解决方法)
- dedecms怎样找回登录密码(织梦dedecms 去掉后台登陆验证码的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9