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与oracle如何直接连接(Oracle更换为MySQL遇到的问题及解决)
- Mysql中CONCAT、CONCAT_WS字符串拼接函数
- mysql缓存是什么(详解mysql查询缓存简单使用)
- mysql 建表命令注释(mysql alter table命令修改表结构实例详解)
- mysql 多表连接查询(MySQL多表查询的具体实例)
- 如何在cmd里开启mysql(Windows下通过cmd进入DOS窗口访问MySQL数据库)
- mysqlorder工作原理(详解Mysql order by与limit混用陷阱)
- thinkphp伪静态实例(thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解)
- mysqlroot本地远程都可登陆(mysql5.7 设置远程访问的实现)
- 操作mysql的jdbc(JDBC连接的六步实例代码与mysql连接)
- mysql实现mvc(mysql的MVCC多版本并发控制的实现)
- mysql 双主双备(MySQL配置了双主,是如何避免出现数据回环冲突的)
- mysql索引为什么是b+树(mysql 使用B+树索引有哪些优势)
- mysql事务特性和隔离级别(Mysql事务特性和级别原理解析)
- mysql缓存和redis查询效率(浅谈MySQL与redis缓存的同步方案)
- 创建数据库入门教程mysql(MySQL数据库安装教程一学就会)
- 东南亚安全吗(好不好挣钱)
- 潘长江小品《照亮全家福》台词剧本完整版(潘长江小品照亮全家福台词剧本完整版)
- 一窗通办政务服务小品剧本(一窗通办政务服务小品剧本)
- 刘韬涛丁子贺小品《根治低头族》台词剧本(刘韬涛丁子贺小品根治低头族台词剧本)
- 看完《夺冠》,黄渤的演技我实在夸不起来,彭昱畅反令人惊喜(黄渤的演技我实在夸不起来)
- 黄渤泪目 我的痴呆父亲,我内心永远的痛(黄渤泪目我的痴呆父亲)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9