当前位置: 首页 > news >正文

6.2 事件的创建,修改和删除

6.2.1 事件的概述

事件(Event)是在指定时刻才被执行的过程式数据库对象。
事件通过MySQL中一个很有特色的功能模块——事件调度器(Event Scheduler)进行监视,并确定其是否需要被调用。 

MySQL的事件调度器可以精确到每秒钟执行一个任务,比操作系统的计划任务更具实时优势。对于一些实时性要求比较高的应用,如股票交易、火车购票、球赛技术统计等就很适合。 

事件和触发器相似,都是在某些事情发生时启动,由于它们相似,所以事件又称为临时触发器(Temporal Trigger)。它们的区别为触发器是基于某个表所产生的事件来触发的, 而事件是基于特定的时间周期来触发的。 
使用事件调度器之前必须确保开启事件调度器, 查看当前是否开启事件调度器: 
show variable like 'event_scheduler'; 
查看系统变量
select @@ event_scheduler; 
如果没有开启事件调度器,可使用以下命令开启
set globle event_scheduler = 1; 或
set globle event_scheduler = TRUE; 
在MySQL的配置文件my.ini中加上“event_scheduler = 1”或“ set globle event_scheduler = NO”,然后重启MysQL服务器。

6.2.2 事件的创建、删除和修改

1. 创建事件

语法格式:create event [ if not exists ] event_name
                  on SCHEDULE schedule
                  [ enable | disable | disable on slave ]
                  do event_body
其中,这里还涉及到scheduled的描述(AT timestamp子句)和interval的描述(EVERY interval子句)。这里可以参考一下其他大佬的文章:MySQL 事件-CSDN博客

【例6.6】创建现在立即执行的事件E_direct,执行时创建一个表tb。

create event E_directon schedule at now()docreate table tb(timeline timestamp);

这里在执行上述代码时,一定要选择数据库,否则会出现 “ No database selected ” 的错误。

show tables;

select * from tb;

 

【例6.7】创建事件E_insertTB,每2s插入一条记录到表tb。

create event E_insertTbon schedule every 2 seconddoinsert into tb values(current_timestamp);

select * from tb;

设置的是2s插入一行,这里是一共插入了32行,代表是16秒之后执行的代码。 

【例6.8】创建事件E_startDays,从第2天起,每天清空表tb,在2024年12月31日结束。

delimiter $$
create event E_startDayson schedule every 1 daystarts curdate() + interval 1 dayends '2024 - 12 - 31'dobegintruncate table tb;end $$

2.修改事件

语法格式:
alter table event_name
        [on SCHEDULE schedule]
        [rename to new_event_name]
        [enable | disable | disable on slave]
        [do enent_body]

【例6.9】将事件E_startDays更名为E_firstDays。

alter event E_startDaysrename to E_firstDays;

3.删除事件

可使用drop event 语句。

【例6.10】删除事件E_firstDays。

drop event E_firstDays;

相关文章:

  • React native新架构组成
  • SQL server with方法修改
  • 两个src案例分享
  • SpringMVC框架学习笔记(八):自定义拦截器和异常处理
  • 第二十五篇——信息加密:韦小宝说谎的秘诀
  • R可视化:微生物相对丰度或富集热图可视化
  • RISC_CPU模块的调试
  • 开发一个python工具,pdf转图片,并且截成单个图片,然后修整没用的白边
  • MyBatis打印不带问号SQL
  • 电子书(chm)-加载JS--CS上线
  • 鸿蒙开发组件:【FA模型的Context】
  • 【html5的video标签在移动端的使用】【微信内部浏览器video自动播放】【vue-video-player】
  • 用ip link add link命令创建vlan子设备
  • 【踩坑】修复Ubuntu远程桌面忽然无法Ctrl C/V复制粘贴及黑屏
  • VMware清理拖拽缓存
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • C++类的相互关联
  • Consul Config 使用Git做版本控制的实现
  • CSS居中完全指南——构建CSS居中决策树
  • Flannel解读
  • in typeof instanceof ===这些运算符有什么作用
  • interface和setter,getter
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Javascript Math对象和Date对象常用方法详解
  • java第三方包学习之lombok
  • jdbc就是这么简单
  • MaxCompute访问TableStore(OTS) 数据
  • Node项目之评分系统(二)- 数据库设计
  • ReactNative开发常用的三方模块
  • Solarized Scheme
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 京东美团研发面经
  • 码农张的Bug人生 - 见面之礼
  • 在weex里面使用chart图表
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​iOS实时查看App运行日志
  • ​MySQL主从复制一致性检测
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #传输# #传输数据判断#
  • (1)(1.13) SiK无线电高级配置(五)
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (八)Flask之app.route装饰器函数的参数
  • (超详细)语音信号处理之特征提取
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (离散数学)逻辑连接词
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (篇九)MySQL常用内置函数
  • (一)appium-desktop定位元素原理
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .net refrector