mysql事件
来源:互联网 发布:配电网工程设计软件 编辑:程序博客网 时间:2024/05/16 15:25
自MySQL5.1.0起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作。
事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里。
在使用之前,先确认下系统是否开启事件调度器: SHOW VARIABLES LIKE 'event_scheduler';
如未开启,则需要先开启: SET GLOBAL event_scheduler = 1;
或 SET GLOBAL event_scheduler = ON;
创建事件
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement / call proce() ; --这可以是sql语句或 call 存储过程名()
schedule:
AT TIMESTAMP [+ INTERVAL INTERVAL]
| EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]
INTERVAL:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH
几个比较关键的点:
- event_name表示事件的名称
- schedule表示触发点,【AT timestamp】一般用于只执行一次,一般使用时可以使用当前时间加上延后的一段时间,例如:AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR。也可以定义一个时间常量,例如:AT ‘2006-02-10 23:59:00’;【EVERY interval】一般用于周期性执行,可以设定开始时间和结束时间。
- ON COMPLETION [NOT] PRESERVE,默认是执行完之后会自动删除。如果想保留该事件使用ON COMPLETION PRESERVE;如果不想保留也可以设置ON COMPLETION [NOT] PRESERVE。
- ENABLE | DISABLE表示设置启用或者禁止这个事件。
- COMMENT 表示增加注释。
看一个实例: DELIMITER $$ALTER EVENT `remove_history` ON SCHEDULE EVERY 1 DAY STARTS '2012-10-01 03:30:00' ON COMPLETION NOT PRESERVE ENABLE DO CALL procdelhistory(NOW())$$
DELIMITER ;
每天3:30执行一次,调用存储过程procdelhistory,执行完事件不保留。
存储过程我们在后面再简单介绍。
- mysql 事件
- MySQL 事件
- mysql事件
- mysql 事件
- mysql事件
- mysql 事件
- MySQL 事件
- MySql事件
- mysql事件
- mysql 事件
- mysql事件
- mysql事件
- mysql事件
- mysql事件
- Mysql事件
- mysql事件
- mysql事件
- MYSQL 事件
- [我眼中的C#]XML和JSON
- Git 使用中显示“Another git process seems to be running in this repository...”问题解决
- 【BZOJ1038】【codevs1412】瞭望塔,半平面交/三分法
- ssh putty使用 记录
- mysql数据库中 控制流程函数 case
- mysql事件
- 迄今为止计算机视觉领域超有实力的研究人物主页
- service和aidl的区别
- java.lang.UnsatisfiedLinkError: no jacob in java.library.path
- 优先级队列-数据结构和算法
- Android ADB命令?这一次我再也不死记了!
- pycharm2016注册破解,亲测有效
- 关于Java并发的常用类回顾
- java获取mac地址工具类