1. 查看数据库的 event 功能是否开启, 在 MySQL 中 event 默认是关闭的, 需要查看并且要确保 event 处于开启状态
sql:show VARIABLES LIKE '%sche%';
如果 event_scheduler 显示为 off 或者 0 说明是关闭的, 这时我们需要手动打开定时器
sql:SET GLOBAL event_scheduler = 1;
这时再输入
sql:show VARIABLES LIKE '%sche%';
event_scheduler 就应该是 ON 或这是 1 了; 即可以进行后面的操作.
2. 创建测试表
- create table user1
- (
- id int(11) not null auto_increment primary key,
- username varcher(15) not null
- )
3. 创建 event 要调用的存储过程 user1_test
- create procedure user1_test()
- begin
- # 为方便查看测试结果, 推荐使用 now() 函数获取当前时间进行插入
- insert into user1(username ) values(now());
- end
4. 创建事件 user1_event
- create event user1_event
- # 这句话是设置时间多长时间执行一次 (本设置是 1S 一次)
- on schedule every 1 second
- on completion preserve disable
- # 这个是指定要执行的代码块, 在上面已经定义过了 (即为 3. 创建的储存过程)
- do call user1_test();
5. 开启事件 user1_event, 因为在创建之后是默认关闭的
- # 开启
- alter event user1_event on completion preserve enable;
- # 关闭 (关闭时间自行控制, 推荐开启约 10S 左右关闭, 这样可以很直观的看到执行后的数据)
- alter event user1_event on completion preserve disable;
6. 重头戏开始了, 查看你的数据
- 2019-06-10 10:35:56
- 2019-06-10 10:35:57
- 2019-06-10 10:35:58
- 2019-06-10 10:35:59
- 2019-06-10 10:36:00
是不是多出了好多条数据, 恭喜你成功了!
参考:
来源: https://www.cnblogs.com/CaptainFM/p/11014227.html