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数据库和数据表的基本操作)
- hive分析后如何录入mysql(hive从mysql导入数据量变多的解决方案)
- python连接到本地的mysql数据库(Python实现连接MySql数据库及增删改查操作详解)
- python和mysql实战(由Python编写的MySQL管理工具代码实例)
- mysql索引失效原因(MySQL索引失效的几种情况详析)
- mariadb导入数据库命令(MySQL/MariaDB 如何实现数据透视表的示例代码)
- mysql insert into 怎么用(MySQL中INSERT的一般用法)
- 将mysql中的表导出来(MySQL之导出整个及单个表数据的操作)
- docker怎么连接mysql(docker如何安装mysql)
- MySQL定时任务(EVENT事件)如何配置详解(MySQL定时任务EVENT事件如何配置详解)
- oracle如何用脚本文件创建表空间(MySQL版oracle下scott用户建表语句实例)
- mysql主从配置教程(MySQL大库搭建主从的一种思路分享)
- mysql优化方案最新(记一次MySQL的优化案例)
- mysql存储过程和函数(MySQL存储过程的查询命令介绍)
- mysql主从复制原理详解(详解MySQL kill 指令的执行原理)
- 浙江省一个县,人口超40万,建县历史超1100年(浙江省一个县人口超40万)
- 五代十国南唐历代国君(五代十国南唐历代国君)
- 飞机引进工程师杨隆 匠人匠心,只争朝夕(飞机引进工程师杨隆)
- 三人行,她们是育人路上的 铁三角 团队(她们是育人路上的)
- 阴阳师 孟婆山兔CP不倒 新皮肤草稿 孟婆兔 让痒痒鼠点赞(阴阳师孟婆山兔CP不倒)
- 阴阳师孟婆御魂推荐 孟婆御魂搭配毕业套(阴阳师孟婆御魂推荐)
热门推荐
- C#enum枚举
- sqlserver如何添加数据库(sqlserver建立新用户及关联数据库教程)
- mac电脑安装php环境(Mac下搭建php开发环境教程)
- web前端开发怎么算乘法(如何计算Web动画帧率FPS)
- html5canvas曲线图例子(html5利用canvas实现颜色容差抠图功能)
- sqlserver栏位说明(SQL Server重置IDENTITY属性种子值操作)
- javascript中的this判定(Javascript中函数分类&this指向的实例详解)
- windowsftp服务与配置实验仿真(Wing FTP Server FTP服务器端安装使用教程)
- pythonpulp怎么使用(pyhanlp安装介绍和简单应用)
- laravel框架知识点(Laravel 不同生产环境服务器的判断实践)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9