1. 创建事件
create event [IF NOT EXISTS] event_name
on SCHEDULE
every|at timstamp [+ INTERVAL interval]
[starts timstamp [+ INTERVAL interval]]
[ends timstamp [+ INTERVAL interval]]
[on completion [not] preserve]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[comment '事件注释']
do
begin
...
...
end;
参数说明:
参数 | 说明 |
---|---|
DEFINER | 可选项,给指定用户使用权限 |
event_name | 必选项,指定事件名称,event_name的最大长度为64个字符,如果为指定event_name,则默认为当前的MySQL用户名(不区分大小写) |
every|at | every循环执行、at单次执行 |
starts | 事件开始时间 |
ends | 事件结束时间 |
interval | 时间单位,YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND |
on completion [not] preserve | not标识在事件执行结束后删除此事件 |
ENABLE | DISABLE | DISABLE ON SLAVE | 可选项,用于指定事件的一种属性。ENABLE表示该事件是开启的,也就是调度器检查事件是否必选调用;DISABLE表示该事件是关闭的,也就是事件的声明存储到目录中,但是调度器不会检查它是否应该调用;DISABLE ON SLAVE表示事件在从机中是关闭的。如果不指定这三个选择中的任意一个,则在一个事件创建之后,它立即变为活动的。 |
do begin … end | 事件触发后要执行的语句体,若只有一条语句,则begin…end可省略 |
2. 删除事件
DROP EVENT [IF EXISTS] event_name
3. 修改事件
ALTER EVENT event_name
[ON SCHEDULE schedule]
[old_NAME TO new_NAME]
[ON COMPLETION [NOT] PRESERVE]
[COMMENT 'comment']
[ENABLE | DISABLE]
[DO sql_statement]
4. 查询事件
4.1 查询所有事件
show events;
4.2 查看事件执行情况
SELECT * FROM information_schema.EVENTS;
5. 关闭事件
alter event event_name on COMPLETION PRESERVE DISABLE;
6. 开启事件
alter event event_name on COMPLETION PRESERVE ENABLE;