MySQL数据库——事件(七)

目录

一、概述

二、事件调度器

三、创建事件

四、修改事件

五、删除事件


一、概述

事件调度器可以在指定的时刻执行某些特定的任务,并以此可取代原先只能由操作系统的计划任务来执行的工作。这些在指定时刻才能被执行的任务就是事件,这些任务通常是一些确定的SQL语句集合

事件和触发器相似,都是在某些事情发生的时候启动,因此事件也可称为临时触发器

  • 事件是基于特定时间周期触发来执行某些任务
  • 触发器是基于某个表所产生的事件来触发的

二、事件调度器

  • 在使用事件调度器之前,必须确保事件调度器已被开启

查看是否已开启事件调度器

格式:

SHOW VARIABLES LIKE'event_scheduler';
SELECT @@EVENT_SCHEDULER;

Example:

开启事件调度器

格式:

SET GLOBAL EVENT_SCHEDULER=1;
SET GLOBAL EVENT_SCHEDULER=TRUE;

Example:

三、创建事件

格式:

CREATE EVENT [IF NOT EXISTS] 事件名
ON SCHEDULE 时间调度 [ENABLE | DISABLE | DISABLE ON SLAVE]
DO 事件动作
  • 事件动作:指定事件启动时要求执行的代码。多条语句时,可用BEGIN...END复合结构
  • ENABLE | DISABLE | DISABLE ON SLAVE:为可选项,表示事件的一种属性
    • ENABLE:表示该事件是活动的,活动意味着调度器检查事件动作是否必须调用
    • DISABLE:表示该事件是关闭的,关闭意味着事件的声明存储到目录中,但是调度器不会检查它是否应该调用
    • DISABLE ON SLAVE:表示事件在从机中是关闭的
    • 如果不指定这三个条件中的任何一个,则在一个事件创建之后,它立即变为活动的
  • 时间调度:用于指定事件何时发生或每隔多久发生一次,对应以下两个子句
  • 格式:
  • AT timestamp[+ INTERVAL interval]
    
    EVERY interval
    [STARTS timestamp [+ INTERVAL interval]......]
    [ENDS timestamp [+ INTERVAL interval]......]
    • AT子句:用于指定事件在某个时刻发生
      • timestamp:表示一个具体的时间点,后面可加上一个时间间隔,表示在这个时间间隔后事件发生,
      • interval:表示时间间隔,由一个数值和单位构成
    • EVERY子句:用于表示事件在指定时间区间内每间隔多长时间发生一次
      • STARTS:指定开始时间
      • ENDS:指定结束时间
  • 时间间隔语法格式:
  • quantity{
    YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH
    | DAY_HOUR | DAY_MINUTE| DAT_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND
    }
    •  quantity:间隔时间的数值

Example:


 每隔一段时间插入一条记录

  • 在student表中创建一个事件,从 '2022-05-05 17:51:00'——'2022-05-05 17:53:56'这个时间段内,每分钟插入一条数据

特定时间插入一条记录

  • 在student表中创建一个事件,在'2022-05-05 18:09:00'这个特定时间插入一条数据

  以上例子仅供参考,具体请自行实践 

四、修改事件

格式:

ALTER EVENT 事件名
[ON SCHEDULE schedule]
[RENAME TO 新的事件名]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[DO 事件动作]

Example:


 把事件名 event_insert 改为 insert_event;

临时关闭创建的事件

 开启临时关闭的事件

  •  注意:
    • 一个事件最后一次被调用后,它是无法被修改的,因为此时它已经不存在了

五、删除事件

格式:

DROP EVENT [IF EXISTS] 事件名

Example:

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来得晚一些也行

观众老爷,请赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值