首页 > 其他分享 >6.2 事件的创建,修改和删除

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

时间:2024-06-20 22:57:14浏览次数:11  
标签:do 删除 schedule 创建 事件 scheduler tb event 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_direct
    on schedule at now()
    do
    create table tb(timeline timestamp);

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

show tables;

select * from tb;

 

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

create event E_insertTb
    on schedule every 2 second
    do
    insert into tb values(current_timestamp);

select * from tb;

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

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

delimiter $$
create event E_startDays
    on schedule every 1 day
    starts curdate() + interval 1 day
    ends '2024 - 12 - 31'
    do
    begin
        truncate 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_startDays
    rename to E_firstDays;

3.删除事件

可使用drop event 语句。

【例6.10】删除事件E_firstDays。

drop event E_firstDays;

标签:do,删除,schedule,创建,事件,scheduler,tb,event,6.2
From: https://blog.csdn.net/2302_79947880/article/details/139843197

相关文章

  • 6.20-合并二叉树
    617.合并二叉树题意描述:给你两棵二叉树:root1和root2。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为null......
  • Day56 代码随想录打卡|二叉树篇---删除二叉搜索树中的节点
    题目(leecodeT450):给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。方法:二叉搜索......
  • chatGPT帮我优化代码-2024.06.20
    改成面向对象源代码defret_roi_value_dict(txt_path):output=[]line_number=0withopen(txt_path,'r')asfile:forlineinfile:line_number+=1#使用正则表达式提取case_name和pixel_valuematch=......
  • 探究C语言函数栈帧的创建和销毁
    引言在C语言程序中,每当一个函数被调用时,系统都会在栈上为该函数分配一块内存空间,这块内存空间就被称为栈帧。栈帧中包含了函数执行所需的所有信息,如局部变量、参数、返回地址等。栈帧的创建和销毁是函数调用的核心部分,它们确保了函数能够正确地执行和返回。本文将在VS2013环......
  • python 如何动态的创建class
    classf1:def__init__(self):self.name="f1"defprintF1(self):print("thisisf1")classf2:def__init__(self):self.name="f2"defprintF2(self):print("thisisf2&q......
  • 基于Python中的tkinter和pygame库创建一个简单音乐播放器
    importosimporttimeimporttkinterastkfromtkinterimportfiledialog,messagebox,ttkimportpygameimportmutagen.mp3#用于获取MP3文件时长classMusicPlayer:def__init__(self,root):pygame.init()self.root=rootsel......
  • leetcode 动态规划(基础版)删除并获得点数
    题目:给你一个整数数组  ,你可以对它进行一些操作。nums每次操作中,选择任意一个  ,删除它并获得  的点数。之后,你必须删除 所有 等于  和  的元素。nums[i]nums[i]nums[i]-1nums[i]+1开始你拥有 个点数。返回你能通过这些操作获得的最大点数。0题解:要会理解......
  • 电脑桌面文件夹删除不了怎么办?6种方法快速解决,建议收藏!
    桌面文件夹删不掉怎么办?有时会遇到桌面上的文件夹无法删除的问题,这是由于文件夹被系统进程或某些应用占用,或者是由于权限设置等原因造成的。以下是解决桌面文件夹无法删除问题的方法,帮助你有效地清理桌面环境。桌面文件夹删不掉,1、使用安全模式重启电脑;2、检查并修改权限设......
  • 每日一道算法题 删除字符串中出现次数最少的字符
    题目删除字符串中出现次数最少的字符_牛客题霸_牛客网(nowcoder.com)C语言#include<stdio.h>#include<string.h>voidfun_2024_6_17(void){charstr[20]={0};while(scanf("%s",str)!=EOF){intalpha[26]={0};intmin=20;......
  • openpyxl 创建 execl 并设置密码
    代码示例fromopenpyxlimportWorkbook#创建一个新的Excel文件workbook=Workbook()sheet=workbook.active#添加一些示例数据到Exceldata=[["Name","Age"],["Alice",30],["Bob",25],["Charlie",35]......