概述
事件,像闹钟,每隔一段事件就会执行,循环执行的事件我把它理解成定时器
studyinfo表数据:
事件的创建
语法
# 语法
DELIMITER $
CREATE EVENT [IF NOT EXISTS] event_name # 创建事件[如果存在]
ON SCHEDULE SCHEDULE # 执行的时间和间隔
[ON COMPLETION (NOT) PRESERVE] # [是(否)循环执行]
[ENABLE | DISABLE | DISABLE ON SLAVE] # [活动的事件(默认) | 关闭的事件 | 在从机中是关闭]
[COMMENT '注释'] # [定义事件的注释]
DO BEGIN # sql语句集开始
[要执行的sql语句] # 定时执行的sql语句
END$ # sql语句集结束
DELIMITER ;
一些常用的时间间隔设置:
# 一些常用的时间间隔设置:
# (1)每隔5秒钟执行
ON SCHEDULE EVERY 5 SECOND
# (2)每隔1分钟执行
ON SCHEDULE EVERY 1 MINUTE
# (3)每天凌晨1点执行
ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
# (4)每个月的第一天凌晨1点执行
ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),INTERVAL 1 MONTH),INTERVAL 1 HOUR)
# (5)每 3 个月,从现在起一周后开始
ON SCHEDULE EVERY 3 MONTH STARTS CURRENT_TIMESTAMP + 1 WEEK
# (6)每十二个小时,从现在起三十分钟后开始,并于现在起四个星期后结束
ON SCHEDULE EVERY 12 HOUR STARTS CURRENT_TIMESTAMP + INTERVAL 30 MINUTE ENDS CURRENT_TIMESTAMP + INTERVAL 4 WEEK
# 参数说明:
timestamp # 表示一个具体的时间点,后面加上一个时间间隔,表示在这个时间间隔后事件发生。
EVERY子句 # 用于表示事件在指定时间区间内每隔多长时间发生一次,其中 SELECT子句用于指定开始时间;ENDS子句用于指定结束时间。
interval # 表示一个从现在开始的时间,其值由一个数值和单位构成。例如,使用“4 WEEK”表示4周;使用“‘1:10’ HOUR_MINUTE”表示1小时10分钟。间隔的距离用DATE_ADD()函数来支配。
创建事件
DELIMITER $
CREATE EVENT IF NOT EXISTS eve1 # 创建事件
ON SCHEDULE EVERY 5 SECOND # 每隔5秒钟执行
ON COMPLETION PRESERVE # 循环执行
COMMENT '定时添加学生信息' # 注释
DO BEGIN # sql语句开始
INSERT INTO studentInfo(student_name,create_time) VALUES('晴泪',NOW());
END$ # sql语句结束
DELIMITER ;
# 过一会查询
SELECT * FROM studentinfo;
调度器的开关以及查看状态
# 开启事件调度器
SET GLOBAL event_scheduler = ON;
# 关闭事件调度器
SET GLOBAL event_scheduler = OFF;
# 查看事件调度器状态
SHOW VARIABLES LIKE 'event_scheduler';
事件的删除
#删除事件语法
DROP EVENT IF EXISTS 事件名;
修改事件
#修改事件
DELIMITER $
ALTER EVENT [IF NOT EXISTS] event_name # 修改事件[如果存在]
ON SCHEDULE SCHEDULE # 执行的时间和间隔
[ON COMPLETION [NOT] PRESERVE] # 循环执行
[ENABLE | DISABLE | DISABLE ON SLAVE] # [活动的事件(默认) | 关闭的事件 | 事件在从机中是关闭的]
[COMMENT '注释'] # [定义事件的注释]
DO BEGIN # 要执行的sql语句集开始
[要执行的sql语句]
END$ # 要执行的sql语句集结束
DELIMITER ;
事件的查询
#查询事件
SELECT * FROM information_schema.events;
打卡第17天,欢迎对数据感兴趣的朋友一起讨论、交流,请多指教!
最后
以上就是落寞白云为你收集整理的MySQL事件的使用的全部内容,希望文章能够帮你解决MySQL事件的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复