mysql event解释_mysql8 参考手册-事件计划程序Event Scheduler概述

MySQL事件是根据计划运行的任务。因此,有时我们将它们称为 计划事件。创建事件时,将创建一个包含一个或多个SQL语句的命名数据库对象,该语句将在一个特定的日期和时间开始和结束,并以一个或多个规则的时间间隔执行。从概念上讲,这类似于Unix crontab (也称为“ cron作业 ”)或Windows Task Scheduler 的想法。

这种类型的计划任务有时也称为 “ 时间触发器 ”,这意味着这些对象是随着时间的流逝而触发的。尽管这基本上是正确的,但我们更喜欢使用术语 事件来避免与第24.3节“使用触发器”中讨论的触发器混淆。更具体地说,不应将事件与“ 临时触发器 ”混淆。触发器是一个数据库对象,其语句是响应于给定表上发生的特定类型的事件而执行的,而(计划的)事件是一个语句,其响应于经过指定时间间隔而执行的对象。

尽管SQL标准中没有规定事件调度,但其他数据库系统中也有先例,您可能会注意到这些实现与MySQL Server中的实现之间存在一些相似之处。

MySQL事件具有以下主要功能和属性:

在MySQL中,事件是由事件的名称和为其分配的架构唯一标识的。

事件根据时间表执行特定操作。该操作包含一个SQL语句,BEGIN ... END如果需要,它可以是一个块中的复合语句 (请参见 第13.6节“复合语句语法”)。事件的时间可以是一次性 或反复发作。一次性事件仅执行一次。重复事件以固定的时间间隔重复执行其操作,并且可以为重复事件的时间表指定特定的开始日期和时间,结束日期和时间,或者两者都指定,也可以不指定。(默认情况下,重复事件的日程安排从创建之日起开始,并且会无限期地持续,直到被禁用或删除为止。)

如果重复事件未在其调度间隔内终止,则结果可能是事件的多个实例同时执行。如果这是不希望的,则应建立一种机制来防止同时发生实例。例如,您可以使用 GET_LOCK()函数,或行或表锁定。

用户可以使用用于这些目的的SQL语句来创建,修改和删除计划的事件。语法上无效的事件创建和修改语句失败,并显示相应的错误消息。用户可以在事件的动作中包含要求用户实际上没有特权的语句。事件创建或修改语句成功,但是事件的操作失败。有关详细信息,请参见第24.4.6节“事件调度程序和MySQL特权”。

可以使用SQL语句设置或修改事件的许多属性。这些属性包括事件的名称,时间,持续性(即,是否在其计划到期后保留),状态(启用或禁用),要执行的操作以及为其分配的架构。请参见第13.1.3节“ ALTER EVENT语句”。

事件的默认定义者是创建事件的用户,除非事件已被更改,在这种情况下,定义者是发出ALTER EVENT影响该事件的最后一条语句的用户 。任何EVENT对定义了事件的数据库具有特权的用户都可以修改 事件。

事件的动作语句可能包含存储例程中允许的大多数SQL语句。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值