当前位置: 首页 > 科技观察

MySOL中Event的用法详解,零基础快速入门必看

时间:2023-03-13 13:21:36 科技观察

1.事件概念Event是一个事件,也是一个数据库对象,也叫时间触发器或者事件调度器。它不同于触发器的事件触发器。,delete,insert等事件被触发,event类似于linux的crontab定时任务,用于时间触发。当到达设定的执行时间时,系统会触发相关的SQL语句或存储过程,相当于为存储过程创建了一个定时器。任务。▲适用范围:对于每隔一段时间有固定需求的操作,比如建表、删除数据、插入数据、修改数据等,都可以使用事件来处理。▲例如:每月1号凌晨1点自动创建下个月需要用到的3张表;在每个月的第一天查询并汇总上个月商品的销售汇总信息,然后将这些信息插入到里面的汇总信息表中。这些情况可以使用事件来处理。2.事件创建语法CREATEEvent[IFNOTEXISTS]event_name--createeventONSCHEDULEschedule--onschedule何时执行,执行频率[ONCOMPLETION[NOT]PRESERVE]--执行完成后是否保留schedule[ENABLE|DISABLE]--是否开启事件,默认开启[COMMENT'comment']--事件DOevent_body的注释;--这个调度计划是做什么的?创建语法中[]中的内容可以省略。[IFNOTEXISTS]如果新的event_name系统不存在,则新建一个,如果已经存在,会提示已经存在。如果省略,则如果系统中不存在新的event_name,则创建成功。如果它已经存在,它将被保存。[ONCOMPLETION[NOT]PRESERVE如果不使用,当事件执行时,会自动删除,不会保留事件。如果不加not,执行后事件会保留。不写此项时,默认执行后保留事件。[启用|DISABLE]当事件被启用时,事件被启用。当事件执行时间到来时,系统会自动执行event_body中定义的语句。如果设置了DiSABLE,事件将被关闭。当到达执行时间时,事件将不会被执行。不设置此项时,默认启用该事件。[COMMENT'comment']comment是事件注释,对事件进行解释。event_body事件主体可以是单个DML语句或多个DML语句。如果有多个DML语句,需要写在begin...end之间,或者调用一个存储过程。三、执行时间说明执行时间说明:1.单计划:2019年2月1日4:00按计划在'2019-02-0104:00:00'执行一次2.按计划每1秒重复执行一次schedule每秒执行一次每1分钟每分钟执行一次也可以是时、日、周、月、年3。指定开始时间的重复计划每天20:00:00执行一次,定时每1天开始'2021-6-1620:00:00'4.如何查看事件●查看哪些事件显示事件;或从information_schema.events中选择*;●查看事件的具体内容SHOWCREATEEVENTevent_name1;●删除eventDROPEVENTevent_name;●修改事件先删除,再创建ALTEREVENTevent_name...省略号后面的内容与创建事件相同5.例如创建一个表student_bak,并使用该表备份学生的数据桌子;创建表student_bak从学生中选择*;然后,我们创建一个存储过程student_bak_pro来备份学生表中的最新数据t1其中t1.sno=t.sno);犯罪;END然后,我们创建一个事件让系统自动执行下面的存储过程student_bak_proCREATEEventstudent_bak_eventONSCHEDULEevery3secondONCOMPLETIONPRESERVEDOcallstudent_bak_pro();ent表新插入了三条数据,然后我们查看student_bak表中是否也插入了最新的数据INSERTINTOstudentVALUES(2008063,'Penqun63','Male',12,'2009-02-24',NULL),(2008064,'Penqun63','男',12,'2009-02-24',NULL),(2008065,'Penqun65','男',12,'2009-02-24',NULL);