1.概述
1.1概念 事件:临时触发器,不是命令触发,而是时间来触发 触发器:当表发生增删改三个事件时,就会触发,基于表操作命令触发
1.2事件VS触发器 联系与区别 触发器 事件:特殊的存储过程 触发器一旦建立永久存在;事件一旦过期就消失自学时发现很复杂的语法格式说明,不看语法,直接看例子即可 很多教育部用的教材都是烂教材 用起来头疼(垄断)
2.事件调度器
查看事件调度器状态:
show variables like'event_%';
select @@event_scheduler;--查看系统变量
开启事件调度器:
set global event_scheduler=1;--0 false;1 true. 注意global
3.创建事件
3.1 创建简单事件
使用场景:规定一个时间范围,事件可自动执行
情景:每一分钟向表delete_score中插入一条数据
delimiter $$
create event 事件名
on schedule 间隔时间--设置日程(多久 执行一次)
开始时间starts timestamp...+interval interval --两个interval,第一个是动词间隔,后一个interval是名词,格式3 month,数值+单位
结束时间ends timestamp...+interval interval xx
Do 事件主体eventbody(SQL语句)
--创建
create event insert_delete_score_event
on schedule every 1 minute
starts now()
ends now()+interval 3 minute--interval表示时间间隔,由一个数值和单位构成,所以这里是3 minute,没有加s;这里表示从现在开始的3分钟后事件结束
do
insert into delete_score values('9999999999','666666','100',now());
--检查验证
show events \G;--看是否已创建事件
select * from tbname;--看事件执行情况,是否自动插入数据
时间点到了 事件不复存在 show events;(做实验就明白了)
3.2 创建包含存储过程的事件
见书P142
4.修改事件
alter event event_insert disable;--临时关闭事件
alter event event_insert enable;--再次开启事件
alter event oldname rename to newname;--重命名该事件 rename to 命名为