`
saybody
  • 浏览: 916533 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

mysql的EVENT体验

阅读更多
MYSQL的事件是5.1新增加的,如果想体验,建议升级版本。
至于语法我就不多说了,手册上讲的很详细,我来说说几个要点以及一些实例。
注意事项:
1、EVENT权限是针对模式的(在MYSQL中也就是库的级别),不能对单独表来赋予权限。
2、必须在全局开启。
3、性能上的损失一定得考虑到。

mysql> show variables like '%event%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | OFF |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> set global event_scheduler = on;
Query OK, 0 rows affected (0.00 sec)

mysql> use event;
Database changed
例子:
我们来创建一个简单的文章表:
mysql> create table article (id serial,title varchar(64) not null, author_name varchar(64),content mediumtext not null, create_time datetime not null,update_time datetime not null);
Query OK, 0 rows affected (0.01 sec)
以及统计表:
mysql> create table report (id int not null auto_increment primary key, r_date date not null,aid int not null,total int not null);
Query OK, 0 rows affected (0.01 sec)



mysql> 插入测试数据。。。
我们来建立一个存储过程。

mysql> delimiter ||
mysql> create procedure sp_report()
-> begin
-> insert into report(r_date,aid,total) select date(update_time) as r_date, id,count(1) from article group by date(create_time) order by r_date asc;
-> end||
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;


创建EVENT;
在一分钟后执行这个存储过程。
mysql> create event report_dawn on schedule at date_add(now(),interval 1 minute) on completion preserve do call sp_report();
Query OK, 0 rows affected (0.00 sec)



mysql> show processlist;
| 7 | event_scheduler | localhost | NULL | Daemon | 5 | Waiting for next activation | NULL |
mysql> select * from report;
Empty set (0.00 sec)

察看现在的EVENT
mysql> show create event report_dawn\G
*************************** 1. row ***************************
Event: report_dawn
sql_mode:
time_zone: SYSTEM
Create Event: CREATE EVENT `report_dawn` ON SCHEDULE AT '2008-03-21 15:46:57' ON COMPLETION PRESERVE DISABLE DO call sp_report()
character_set_client: latin1
collation_connection: latin1_swedish_ci
Database Collation: utf8_general_ci
1 row in set (0.00 sec)

mysql>


我们来查看更新后的结果:
mysql> select * from report;
+----+------------+-----+-------+
| id | r_date | aid | total |
+----+------------+-----+-------+
| 1 | 2008-03-21 | 1 | 3 |
| 2 | 2008-03-22 | 16 | 1 |
| 3 | 2008-03-23 | 4 | 2 |
| 4 | 2008-03-23 | 6 | 2 |
| 5 | 2008-03-23 | 7 | 1 |
| 6 | 2008-03-23 | 8 | 2 |
| 7 | 2008-03-23 | 10 | 2 |
| 8 | 2008-04-13 | 12 | 1 |
| 9 | 2008-04-13 | 13 | 2 |
+----+------------+-----+-------+
9 rows in set (0.00 sec)
现在看看这个EVENT的状态,
mysql> select event_schema,event_name,status from information_schema.events where event_schema = 'event';
+--------------+-------------+----------+
| event_schema | event_name | status |
+--------------+-------------+----------+
| event | report_dawn | DISABLED |
+--------------+-------------+----------+
1 row in set (0.00 sec)
已经停止运行了。


mysql> select * from report;
+----+------------+-----+-------+
| id | r_date | aid | total |
+----+------------+-----+-------+
| 1 | 2008-03-21 | 1 | 3 |
| 2 | 2008-03-22 | 16 | 1 |
| 3 | 2008-03-23 | 4 | 2 |
| 4 | 2008-03-23 | 6 | 2 |
| 5 | 2008-03-23 | 7 | 1 |
| 6 | 2008-03-23 | 8 | 2 |
| 7 | 2008-03-23 | 10 | 2 |
| 8 | 2008-04-13 | 12 | 1 |
| 9 | 2008-04-13 | 13 | 2 |
| 10 | 2008-03-21 | 1 | 3 |
| 11 | 2008-03-22 | 16 | 1 |
| 12 | 2008-03-23 | 4 | 2 |
| 13 | 2008-03-23 | 6 | 2 |
| 14 | 2008-03-23 | 7 | 1 |
| 15 | 2008-03-23 | 8 | 2 |
| 16 | 2008-03-23 | 10 | 2 |
| 17 | 2008-04-13 | 12 | 1 |
| 18 | 2008-04-13 | 13 | 2 |
+----+------------+-----+-------+
18 rows in set (0.00 sec)


多了9条记录,
不过默认修改时间后。
在运行完毕后没有保存它。
因为时间已经过去了。
mysql> select event_schema,event_name,status from information_schema.events where event_schema = 'event';
Empty set (0.00 sec)

ON COMPLETION [NOT]PRESERVE
这个选项用来确认事件在执行完毕后是否保存其定义。
分享到:
评论

相关推荐

    mysql七天定时下架任务

    此任务通过MySQL数据库中的事件(Event)来定时执行一个自定义的存储过程(Stored Procedure),确保每天定时检查并更新满足条件的记录。 ### 一、任务概述 #### 1.1 背景与目的 在许多网站或应用中,岗位招聘信息...

    Java界面连接MySQL

    Java界面连接MySQL是Java开发中的常见任务,主要涉及如何通过Java程序与MySQL数据库进行交互,以便执行查询、插入、更新和删除等操作。在Eclipse这样的集成开发环境中,这一过程通常包括设置数据库驱动、配置连接...

    php+mysql+js拖拽div实例

    在Web开发中,用户交互性是提升用户体验的关键因素之一。拖拽功能(Drag and Drop)可以让用户通过鼠标直接操作页面元素,增强了网页的互动性。本实例将介绍如何使用PHP、MySQL和JavaScript实现一个拖拽Div的动态...

    MySQL 数据库平台的复制技术.docx

    MySQL数据库平台的复制技术 MySQL 数据库平台的复制技术是指在 MySQL 数据库中实现数据的高可用性和实时性的一种技术。...MySQL 数据库平台的复制技术可以提高数据库的可用性和可靠性,提高用户的体验度和满意度。

    通过node-mysql搭建Windows+Node.js+MySQL环境的教程_.docx

    综上所述,通过`node-mysql`搭建Windows + Node.js + MySQL环境不仅能够满足基本的开发需求,还可以通过自定义功能增强用户体验。同时,在实际开发过程中还需要重视安全性问题,采取有效措施保障应用程序的安全性。

    (带目录版)MySQL LVS+Keepalived+MHA 高可用群集 应用部署操作手册

    ### MySQL LVS+Keepalived+MHA 高可用群集应用部署操作手册知识点解析 #### MHA 架构介绍与工作原理 ...通过合理的架构设计和技术选型,能够有效地解决数据库层面的高可用性问题,为用户提供更加稳定的服务体验。

    java通讯录连接mysql数据库

    对于Swing GUI,通常使用事件调度线程(Event Dispatch Thread,EDT)来处理UI操作,以避免线程同步问题。 总的来说,这个示例是一个基础的登录界面,用于演示如何使用Java Swing构建GUI,并提供了扩展到数据库操作...

    Flex与Java交互调用mysql

    在Flex项目中,使用`s:RemoteObject`标签定义与Java服务的交互,如`(event)" fault="onFault(event)">`。 通过以上步骤,我们建立了Flex与Java的通信桥梁,使得Flex可以通过BlazeDS调用Java服务来操作MySQL数据库。...

    event_registration_system.zip_event_gladox8_php_position9ew

    5. **前端开发**:事件注册系统的用户界面是前端部分,可能由HTML、CSS和JavaScript构建,为用户提供友好的交互体验,如表单填写、提交按钮等。 6. **安全性和验证**:系统应包含验证机制,确保只有有效的注册信息...

    Event-Planner-App:这是专为Android开发的计划程序,其后端运行PHP和MySQL

    《构建基于Android的Event Planner应用:融合PHP与MySQL的后端设计》 在现代移动应用领域,事件策划软件已经成为日常生活和工作中不可或缺的一部分。本项目,名为"Event-Planner-App",是一款专为Android平台设计的...

    php jquery mysql拖动层并保存数据库

    在IT领域,尤其是在Web开发中,常常需要实现用户交互性的功能,例如拖放(Drag and Drop)操作。这个场景中的...这一技术组合提供了丰富的用户体验,同时也要求开发者对整个技术栈有深入理解和实践能力。

    使用Mysql模拟列车运行完成车底数据统计任务初探.pdf

    此外,可以通过查询系统变量`EVENT_SCHEDULER`来检查计划任务功能是否已经被启用,这对于维护计划任务的正常运行非常关键。 综上所述,本文所介绍的方法利用MySQL数据库的计划任务和存储过程功能,不仅提高了车底...

    Event Registration Web

    开发者可能使用SQL(如MySQL、PostgreSQL)或NoSQL(如MongoDB)数据库,设计包含活动详情、用户信息、注册状态等字段的数据模型。 5. **用户认证与授权**:为了保护用户信息的安全,项目需要实现用户认证系统,如...

    LAMP系统性能调优(apache+php+mysql).pdf

    通过上述各个层次的调整和优化,能够显著提升LAMP架构的整体性能,为用户提供更好的服务体验。注意,调优过程并非一劳永逸,随着业务的发展和技术的更新,需要不断地进行评估和调整,以适应新的需求和挑战。

    微信小程序云函数使用mysql数据库过程详解

    微信小程序云函数允许开发者在云端...学习如何有效利用这些工具,可以帮助你构建出更加功能丰富的应用程序,提高用户体验。继续探索云开发的其他功能,如存储、消息队列、定时任务等,将进一步增强你的小程序开发能力。

    Java swing mysql员工工资管理系统项目源码附带文档

    8. **多线程**: 如果系统涉及到并发操作,如后台数据计算或者异步加载,那么多线程编程可能被应用,以提高用户体验和系统性能。 9. **文件操作与资源管理**: 项目中可能包含了读取或保存配置文件、日志文件等操作,...

    利用python对mysql表做全局模糊搜索并分页实例

    在开发Web应用时,我们经常需要处理用户对数据库的搜索请求,这通常涉及到全局模糊搜索和分页功能。本文将详细介绍如何使用Python结合MySQL数据库实现这一功能,...这些技巧有助于提高Web应用的用户体验和可维护性。

    LAMP系统性能调优(apache+php+mysql)参考.pdf

    【LAMP系统性能调优】是指针对Linux操作系统、Apache HTTP服务器、MySQL数据库和PHP脚本语言组成的开源Web应用平台进行优化的...通过这些手段,可以显著提高LAMP系统的响应速度和处理能力,从而提供更好的用户体验。

    基于java+swing+mysql田径运动会管理系统-数据库课设报告.pdf

    通过对田径运动会管理系统的详细设计与实现,不仅提高了运动赛事的组织效率,也极大地提升了用户体验。本系统利用Java+Swing+MySQL的技术栈,成功构建了一个功能齐全、界面友好的管理平台。未来,还可以进一步优化...

    基于JavaScript MySQL实现学生移动学习系统【优质毕业设计、课程设计项目】.zip

    本项目是基于JavaScript和MySQL实现的学生移动学习系统,是一份优质的毕业设计或课程设计资源,包含完整的程序源代码、数据库设计以及详细的环境配置说明,确保能够顺利运行。这个项目旨在利用现代Web技术为学生提供...

Global site tag (gtag.js) - Google Analytics