Mysql 关于event的详解

官方文档
Using the Event Scheduler
https://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html
CREATE EVENT Statement
https://dev.mysql.com/doc/refman/5.7/en/create-event.html
ALTER EVENT Statement
https://dev.mysql.com/doc/refman/5.7/en/alter-event.html
DROP EVENT Statement
https://dev.mysql.com/doc/refman/5.7/en/drop-event.html

Mysql的event就类似Oracle的DBMS_SCHEDULER

event_scheduler参数等于on或1,才能使用event
mysql> SHOW VARIABLES LIKE ‘%event_scheduler%’;

创建一个事件每分钟执行一次存储过程sp_insert_heartbeat_table()
CREATE EVENT event_replication_insert ON SCHEDULE EVERY 60 SECOND DO call sp_insert_table();

创建一个事件每分钟执行一次delete语句
CREATE EVENT event_replication_delete ON SCHEDULE EVERY 60 SECOND DO delete from table1 where id>2

查看事件执行结果
mysql> select * from events_list;

默认创建事件存储在当前库中,也可显示指定事件创建在哪个库中
通过show events只能查看当前库中创建的事件

查看当前所在库的事件
mysql> show events;

查看某个库的事件
mysql> SHOW EVENTS FROM dbname;

查看所有事件
mysql> select * from mysql.event;
mysql> select * from information_schema.events;

事件开启与关闭:
开启某事件:ALTER EVENT DBNAME.EVENT_NAME ENABLE;
关闭某事件:ALTER EVENT DBNAME.EVENT_NAME DISABLE;

修改事件每2分钟执行一次
ALTER EVENT EVENT_NAME ON SCHEDULE EVERY 2 MINUTE;

重命名事件EVENT_NAME1为EVENT_NAME2
ALTER EVENT EVENT_NAME1 RENAME TO EVENT_NAME2;

查询某个event的状态
select created,starts,last_executed,ends,status,on_completion from mysql.event where name=‘eventname’;

删除某个event
DROP EVENT event_name

Normally, once an event has expired, it is immediately dropped. You can override this behavior by specifying ON COMPLETION PRESERVE. Using ON COMPLETION NOT PRESERVE merely makes the default nonpersistent behavior explicit.
ALTER EVENT EVENT_NAME ON COMPLETION PRESERVE ENABLE; --此时就算事件过期了,也不会被自动删除掉

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值