MySQL事件调度器

1、创建记录表:

1
2
3
4
5
6
7
8
9
-- 用户登录记录表
create table user_logs
(
id bigint auto_increment primary key,
user_id bigint not null,
login_time datetime not null,
session_data text,
index (login_time)
);

2、启动事件调度器:

1
2
3
4
5
-- 检查事件调度器是否启用
show variables like 'event_scheduler';

-- 启用事件调度器
set global event_scheduler = on;

3、创建事件:

1
2
3
4
5
6
7
create event delete_old_logs
on schedule every 1 day -- 每天执行
starts current_timestamp -- 从当前时间开始
do
delete
from user_logs
where login_time < now() - interval 30 day; -- 删除三十天前的登录记录

4、事件调度器基本操作:

1
2
3
4
5
6
7
8
-- 查看事件
show events;

-- 禁用事件
alter event delete_old_logs disable;

-- 删除事件
drop event delete_old_logs;