卓象程序员 | 哈尔滨IT培训 | 品质教育,口碑传承 | 为做出口口相传,好口碑的教育品牌而奋斗!

卓象程序员让每一位学员高薪就业 联系我们13101507057

加微信,了解详情
您所在的位置:首页 > 文章 >卓象技术

「卓象程序员」Mysql数据库事件使用与示例
时间: 2019-11-04 08:51:19     来源: 卓象IT实训基地【原创】

事件简介


    事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。

    事件和触发器类似,都是在某些事情发生的时候启动。当数据库上启动一条语句的时候,触发器就启动了,而事件是根据调度事件来启动的。由于他们彼此相似,所以事件也称为临时性触发器。

    事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。

事件的优缺点


    优点: 一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。

    可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下就非常实用了。

    缺点:定时触发,不可以调用。

创建事件

    

一条create event语句创建一个事件。每个事件由两个主要部分组成,第一部分是事件调度(event schedule),表示事件何时启动以及按什么频率启动,第二部分是事件动作(event action ),这是事件启动时执行的代码,事件的动作包含一条SQL语句,它可能是一个简单的insert或者update语句,也可以让一个存储过程或者benin...end语句块,这两种情况允许我们执行多条SQL。

    一个事件可以是活动(打开)的或停止(关闭)的,活动意味着事件调度器检查事件动作是否必须调用,停止意味着事件的声明存储在目录中,但调度器不会检查它是否应该调用。在一个事件创建之后,它立即变为活动的,一个活动的事件可以执行一次或者多次

开启事件


    在使用事件这个功能,首先要保证你的mysql的版本是5.1以上,然后还要查看你的mysql服务器上的事件是否开启。

 查看事件是否开启,使用如下命令查看:

   SHOW VARIABLES LIKE 'event_scheduler';      

    通过动态参数修改 SET GLOBAL event_scheduler = ON;

    更改完这个参数就立刻生效了  

    注意:还是要在my.ini 中添加event_scheduler=ON。因为如果没有添加的话,mysql重启事件又会回到原来的状态了。


立即启动事件

create event event_now

on schedule

at now()

do 事件执行语句;




  • 每分钟启动事件


    create event test.event_minute 

    on schedule 

    every  1 minute  

    do 事件执行语句;

    每天一点钟执行



    CREATE EVENT `demo`.`Untitled`

    ON SCHEDULE

    EVERY '1' DAY  + INTERVAL '1' HOUR

    DO 事件执行语句;


    一段时间内重复执行


    create event monitor_event 

    on schedule every 1  minute

    starts ‘2016-12-12 9:00:00’  ends ‘2016-12-12 11:00:00’ 

    do 事件执行语句 ;



    每日分享技术干货~

    报名卓象免费训练营课程

    学习最新热门IT技术

    找一份自己满意的高薪工作

    15天免费学习!!

    卓象程序员

    ★ 零基础,随时体验

    ★ 免费试听,满意后再报名

    ★ 小班授课,学习氛围浓厚

    ★ 口碑相传,80%学员来自口碑推荐

    ★ 教学严管,闯关式学习保障学习效果

    ★ 公司地点,哈尔滨市东直路123号7楼