mysql高级【5】:mysql事件

 mysql中使用事件那么事件的线程应该是开启的,

查看开启线程的命令是: show processlist

event_scheduler开启事件才能执行的,如果没有开启

开启:set global event_scheduler  = on;

关闭:set global event_scheduler  = off;

线程开启了那么我们来操作事件。

新建一个表:下面事件的操作将围绕这个表进行哦。

create table test(
      id int auto_increment primary key,
      time datetime,
      user varchar(50)

);

1、事件的创建

上一篇中的触发器是被动触发的,而事假是主动触发的。当一天结束可以使用事件清除当天的日志数据,可以使用事件来定时新增数据,事件有一次性的时间有循环的事件,事件是可以调用存储过程和函数的哦。

事件的格式是:中括号里面的是可选择的

 

CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name  //event_name事件名称
ON SCHEDULE schedule

[ON COMPLETION [NOT] PRESERVE]  /*

当为on completion preserve 的时候,当eventd到期了,event会被disable,但是该event还是会存在

当为on completion not preserve的时候,当event到期的时候,该event会被自动删除掉.*/

[ENABLE | DISABLE | DISABLE ON SLAVE] //事件的状态,enable是默认的可以使用,disable和disable on slave是禁用

[COMMENT 'comment']  //增加注释

DO event_body;  //event body 是执行的SQL语句或者调用存储过程等。

schedule时间表达式

AT timestamp //timestamp时间戳

[+ INTERVAL interval] ... | 

EVERY interval

[STARTS timestamp [+ INTERVAL interval] ...]

[ENDS timestamp [+ INTERVAL interval] ...]

interval时间类型:

YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND

下面新增一个10秒钟自动新增一条数据的并且1分钟以后结束的事件,事件执行完就自动删除不保存。

create event twosecond
      on schedule every 10 second 
      starts current_timestamp() 
      ends current_timestamp() + interval 1 minute 
      on completion not preserve 
      do 
      insert into test(time,user) values(now(),user()); 

等过了一分钟查询test表里面的数据:数据表里面新增了7条数据这个事件是正确执行了。

 定时一个任务10秒以后删除id为44 的数据

 create event test1
    on schedule at current_timestamp + interval 10 second
    do
    delete from test  where id = 44;

查询数据以后可以发现id为44 的数据已经被删除了

 

2、事件的修改

事件可以修改它的属性

每个属性都可以修改,其他的属性影响的

例如:ceshi事件的禁用

修改调度时间:

 

 

3、事件的删除

事件的删除:mysql表、存储过程、触发器删除都是一样的操作

drop   event   事件名;

例如:

《………………………………………………菜鸟起飞中,请各位走过路过的多多指教……………………………………》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值