`
fireDragonpzy
  • 浏览: 462346 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

mysql即时/定时触发事件(mysql5.1)

阅读更多
一、介绍
事件调度器是在 MySQL 5.1 中新增的另一个特色功能,可以作为定时任务调度器,取代部分原先只能用操作系统任务调度器才能完成的定时功能。而且 MySQL 的事件调度器可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下就非常实用了。
事件调度器是定时触发执行的,在这个角度上也可以称作是”临时的触发器”。触发器只是针对某个表产生的事件执行一些语句,而事件调度器则是在某一个 (间隔)时间执行一些语句。事件是由一个特定的线程来管理的,也就是所谓的”事件调度器”。启用事件调度器后,拥有 SUPER 权限的账户执行 SHOW PROCESSLIST 就可以看到这个线程了。通过设定全局变量event_scheduler 的值即可动态的控制事件调度器是否启用。
在使用这个功能之前必须确保event_scheduler已开启,可执行
SET GLOBAL event_scheduler = 1;


SET GLOBAL event_scheduler = ON;

来开启,也可以直接在启动命令加上“–event_scheduler=1”,例如:
mysqld ... --event_scheduler=1
要查看当前是否已开启事件调度器,可执行如下SQL:
SHOW VARIABLES LIKE 'event_scheduler';


SELECT @@event_scheduler;

二、创建事件(CREATE EVENT)
先来看一下它的语法:
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} 

1) 首先来看一个简单的例子来演示每秒插入一条记录到数据表
USE test;
CREATE TABLE aaa (timeline TIMESTAMP);
CREATE EVENT e_test_insert
ON SCHEDULE EVERY 1 SECOND
DO INSERT INTO test.aaa VALUES (CURRENT_TIMESTAMP);

等待3秒钟后,再执行查询看看:
SELECT * FROM aaa;
+———————+
| timeline |
+———————+
| 2007-07-18 20:44:26 |
| 2007-07-18 20:44:27 |
| 2007-07-18 20:44:28 |
+———————+ 

2) 5天后清空test表:
CREATE EVENT e_test
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY
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;
[ON COMPLETION [NOT] PRESERVE]#可以设置这个事件是执行一次还是持久执行,默认为NOT PRESERVE。 

8 ) 每天定时清空test表(只执行一次,任务完成后就终止该事件):
CREATE EVENT e_test
ON SCHEDULE EVERY 1 DAY
ON COMPLETION NOT PRESERVE
DO TRUNCATE TABLE test.aaa;

[ENABLE | DISABLE]可是设置该事件创建后状态是否开启或关闭,默认为ENABLE。
[COMMENT 'comment']可以给该事件加上注释。
分享到:
评论

相关推荐

    MySQL 5.1官方简体中文参考手册

    1.6.1. MySQL 5.1的新特性 1.7. MySQL信息源 http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/(第 1/24 页)2006-11-02 19:12:13 MySQL 5.1 Reference Manual 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天...

    MySQL 5.1参考手册 (中文版)

    1.6.1. MySQL 5.1的新特性 1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. ...

    MySQL 5.1参考手册中文版

    1.6.1. MySQL 5.1的新特性 1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 ...

    MySQL 5.1中文手冊

    1.6.1. MySQL 5.1的新特性 1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. ...

    MySQL 5.1参考手册 中文版

    MySQL 5.1是MySQL数据库管理系统的一个重要版本,它提供了许多功能和改进,为开发者和数据库管理员提供了更高效、更灵活的数据存储与管理方案。本参考手册中文版旨在帮助用户全面理解和掌握MySQL 5.1的各项特性。 1...

    MySQL 5.1参考手册

    MySQL 5.1参考手册.chm 前言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL...

    mysql5.1中文手册

    MySQL 5.1的新特性 1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是...

    MySQL5.1参考手册官方简体中文版

    MySQL 5.1参考手册 这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。 This translation was done by MySQL ...

    MYSQL5.1 CHM版中文帮助文档(小白必看)

    MYSQL5.1 CHM版中文帮助文档(小白必看):内容包含Mysql的一般信息、安装教程、数据库管理、优化、语言结构、字符集支持、列类型、函数和操作符、SQL语句语法、插件式存储引擎体系结构、存储引擎和表类型、编写...

    MySQL5.1(CHM).zip中文手册

    MySQL 5.1参考手册 这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问:dev.mysql.com。 原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。 目录 前言 1. 一般信息 2. 安装MySQL 3. ...

    MySQL-5.1-Manual_zh.rar_12.21_mysql api_mysql manual chm_mysql5.

    MySQL5.1 中文手册 这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版。 -------------------------------------------------------------------------------- ...

    mysql5.1 参考手册,帮助文档,指导教程

    这份“mysql5.1 参考手册”提供了全面的技术指南,帮助用户理解和掌握MySQL 5.1的各种操作和特性。下面我们将深入探讨MySQL 5.1的一些关键知识点。 一、安装与配置 在开始使用MySQL之前,必须进行安装和配置。MySQL...

    MySQL Reference Manual5.1.tar.gz

    8. **触发器和事件**:这些允许自动执行特定任务,如在数据更改时触发的操作或定期执行的脚本。 9. **性能优化**:包括查询优化、查询缓存、表分区、性能分析工具等,以提升系统整体性能。 10. **复制技术**:...

    S23-MySQL-JDBC反序列化1

    MySQL-JDBC反序列化漏洞是一种安全风险,出现在MySQL的Java驱动程序中,允许攻击者通过特定的JDBC连接参数触发反序列化过程,可能导致远程代码执行。这种漏洞主要利用了MySQL Connector/J,它是MySQL数据库与Java...

    mysql的新特性:事件

    ### MySQL 5.1 新特性:事件 #### 一、简介 MySQL 5.1 版本引入了一项重要的新特性——**事件**。这项功能允许数据库管理员和开发者通过简单的SQL命令来设置定时任务,从而实现自动化的数据库操作。本文将详细介绍...

    mysql-connector-java.jar

    - `5.1.x`系列:适用于MySQL 5.0到5.7版本,其中`5.1.38`和`5.1.47`是不同版本的补丁更新,增强了稳定性和安全性。 - `6.0.x`系列:主要为MySQL 5.5到5.7提供支持,`6.0.6`包含对新特性的支持和错误修复。 - `8.0...

    MySQL Event Scheduler(事件调度器)

    一、概述 事件调度器是在 MySQL 5.1 中新增的另一个特色功能,可以作为定时任务调度器,取代部分原先只能用操作系统任务调度器才能完成的定时功>能。例如,Linux 中的 crontabe 只能精确到每分钟执行一次,而 MySQL ...

    MySQL JDBC 客户端反序列化漏洞分析 - 安全客,安全资讯平台1

    在某些版本的MySQL Connector/J(例如5.1.10及以下的5.1.X版本)中,如果设置了`autoDeserialize=true`,并且`queryInterceptors`包含特定的拦截器(如`ServerStatusDiffInterceptor`),即使没有执行任何SQL查询,...

    MySQL JDBC 客户端反序列化漏洞分析 - 安全客,安全资讯平台2

    2. 5.1.10及以下的5.1.X版本,情况与上面类似,但也需要在连接后执行查询才能触发漏洞。 3. 5.1.41及以上版本,已经修复了这个问题,因此不再易受此漏洞影响。 测试代码示例展示了如何构建JDBC连接字符串来触发此...

Global site tag (gtag.js) - Google Analytics