MySQL 事件调度器创建

本文介绍了MySQL事件调度器的基本概念、使用范围、权限要求及如何创建和管理事件。事件调度器适用于定期执行的任务,如创建表、删除数据等。通过Navicat等工具,可以方便地设置和调整事件的执行计划。注意在主库上开启定时器以确保主从同步。文章提供了创建事件的详细语法,并给出实例操作步骤。
摘要由CSDN通过智能技术生成

一、基本概念

      事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里。

二、使用范围

       对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理。

三、使用权限

       单独使用event调用SQL语句时,查看和创建需要用户具有event权限,调用该SQL语句时,需要用户具有执行该SQL的权限。Event权限的设置保存在mysql.user表和mysql.db表的Event_priv字段中。

       当event和procedure配合使用的时候,查看和创建存储过程需要用户具有create routine权限,调用存储过程执行时需要使用excute权限,存储过程调用具体的SQL语句时,需要用户具有执行该SQL的权限。

查看EVENT的方法 :

SHOW EVENTS;

四、基本语法

     要使event起作用,MySQL的常量GLOBAL event_scheduler必须为on或者是1;

-- 查看是否开启定时器

SHOW VARIABLES LIKE 'event_scheduler';

 

-- 开启定时器 0:off     1:on 

SET GLOBAL event_scheduler = 1;

      当你设定的时间计划为 0 或者 OFF 时, 即关闭时间进程,不会有新的事件执行,但现有的正在运行的计划事件会执行到完毕

      对于线上环境来说,使用EVENT时,   注意 -- 要从主库上开启定时器,从主库上关闭数据库,event触发所有操作均会记录binlog进行主从同步,从库上开启定时器很可能造成卡库。切换主库后之后记得将新主库上的定时器打开。

 

  创建事件

CREATE EVENTS 的语法如下:

CREATE EVENT
[IF NOT EXISTS] ---------------------------------------------*标注1
event_name -----------------------------------------------------*标注2

ON SCHEDULE schedule ------------------------------------*标注3 
[ON COMPLETION [NOT] PRESERVE] -----------------*标注4
[ENABL

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值