【背景】随着业务的变更,应用每天需要对系统里面的所有客户积分进行累计计算,在做整个操作的时候,系统的其他收银等一些业务就会受到影响,所以经过确认在每天晚上23点,做一个定时的Events让系统自动运行,以下是关于Events的相关学习文档;
【介绍】event_scheduler:时间调度器,是MySQL5.1.x版本中引入了一项新特性,在指定的时间单元内执行特定的任务,早期一些对数据定时性操作通过操作系统的crontable的操作,可以直接使用数据库本身提供的功能。
【使用说明】
1、状态查看方法:
默认的情况下该功能是属于关闭状态,需要先进行启用后才能使用该特性;
SHOW VARIABLES LIKE 'event_scheduler'; |
2、启用和关闭
参考前面的参数文档修改方法,这边有四种的方法进行修改
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
键值1或者ON表示开启;0或者OFF表示关闭;
|
或者也可以在server的配置文件((
my.cnf
, or
my.ini
on Windows systems)中设置event_scheduler=1,然后重启服务器
3、使用的方法
详细语法:http://dev.mysql.com/doc/refman/5.5/en/event-scheduler.html
CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] DO event_body;
schedule: AT timestamp [+ INTERVAL interval] ... | EVERY interval [STARTS timestamp [+ INTERVAL interval] ...] [ENDS timestamp [+ INTERVAL interval] ...]
interval: quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
|
4、查看schema下的所有event
SHOW EVENTS FROM test \G; 查看test下面的所有event SELECT event_schema,event_name,event_definition,interval_value,interval_field,last_executed,status FROM `INFORMATION_SCHEMA`.`EVENTS` ORDER BY EVENT_NAME; 查看数据库下面所有schema的所有enent
|
5、enents内容的查看
mysql> show create event event_vipview \G *************************** 1. row *************************** Event: event_vipview sql_mode: time_zone: +08:00 Create Event: CREATE DEFINER=`root`@`%` EVENT `event_vipview` ON SCHEDULE EVERY 1 DAY STARTS '2015-08-27 23:00:00' ON COMPLETION PRESERVE ENABLE DO call p_icrm_fm character_set_client: utf8 collation_connection: utf8_general_ci Database Collation: utf8_general_ci 1 row in set (0.00 sec)
|
6、单个event的禁用和启用
禁用:alter event event_name disable;
启用:alter event event_name enable;
|
7、删除event
drop event if exists event_name; |
以上包含了管理event的所有相关信息,也是我的第200篇文档,希望能对大家有用;