事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。
事件和触发器类似,都是在某些事情发生的时候启动。当数据库上启动一条语句的时候,触发器就启动了,而事件是根据调度事件来启动的。由于他们彼此相似,所以事件也称为临时性触发器。
事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。
2.1 优点
一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。
可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下就非常实用了。
2.2 缺点定时触发,不可以调用。
![](https://img.haomeiwen.com/i12079082/af3fee17121bfc81.png)
![](https://img.haomeiwen.com/i12079082/a3bc6bc7cd8f72e9.png)
Set global event_scheduler =off 关闭事件要在有事件才可以执行。
写事件注意事项:
1,同时插入多条记录,同时进行多个操作必须要加分隔符delimite,否则会出现错误。单条记录就不用。
2 开关闭事件的指令,set
global event_scheduler=on(1); set global event_scheduler=off; 这个指令比较特殊,需要记清楚,以前函数还有过程都是直接create,而且这里schedule后面加了r,但是后面具体指令on schedule 就没有r ;scheduler的意思是调度器,排成器, schedule的意思是时间表。
3,在具体指令前,时间后要加do;
4 delimiter 后面直接加//,end后面直接加//,不用加冒号
5 begin和end之间写操作。
![](https://img.haomeiwen.com/i12079082/04c37a83286e285a.png)
注意开始日期和结束日期的写法,starts 和ends.
![](https://img.haomeiwen.com/i12079082/bf06a4e0008a1497.png)
On completion not preserve
执行一次就关闭
临时开启事件
Alter event aaa disable;
临时关闭事件
Alter event aaa enable;
网友评论