MySQL笔记10

事件

https://www.cnblogs.com/zoro-zero/p/6511203.html
打开事件调度器才能执行事件
創建
可以通过’? create event’命令查看创建触发器的格式。

CREATE EVENT [IF NOT EXISTS] event_name #不存在就创建
ON SCHEDULE schedule #计划任务
(定时操作:AT timestamp 时间点,EVERY interval 间隔多久)
	[ON COMPLETION [NOT] PRESERVE] # 事件到期处理
	(事件执行完之后默认保留,加一个NOT为删除)
	[ENABLE | DISABLE | DISABLE ON SLAVE] #事件的状态
	(开启 | 关闭) #相当于你设置的闹钟是打开还是关闭的
	[COMMENT 'string'] # 这是注释,不用管
	DO event_body; # 执行的操作

schedule: # 任务计划参数解析
AT timestamp [+ INTERVAL interval] …
# AT 时间点 [+ 时间间隔]
(如:AT 2020-6-6 8:30:10,2020年6月6号8点30分10秒)
| EVERY interval
[STARTS timestamp [+ INTERVAL interval] …]
[ENDS timestamp [+ INTERVAL interval] …]
# EVERY 间隔多久
[开始时间 [+ 时间间隔]]
[结束时间 [+ 时间间隔]]

例如:对于以下表,创建一个事件,每隔6秒钟自动插入一条数据。
①创建事件测试表
create table event_table
(
id int primary key auto_increment,
insert_time datetime
)engine innodb default charset utf8;

select * from event_table; # 查看表中数据

②创建一个事件,每隔6秒自动插入一条数据
create event insert_event
on schedule every 6 second
do
insert into event_table values(null,now());
#这里只有一条语句可以不用begin end;

select * from event_table; # 查看表中数据

查看所有事件的状态
show events;

事件调度器

事件是由事件调度器管理的,所以需要打开事件调度器才能执行事件。
1、查看事件调度器的状态 #事件调度器状态是一个会话变量
show variables like ‘%SCHEDULE%’;
2、设置事件调度器的的状态 # 通过会话变量打开或关闭
set global event_scheduler = on; # 或者=1,打开调度器
set global event_scheduler = off; # 或者=0,关闭调度器
3、查看进程列表
事件调度器开启后是有由一个进程来执行的
show processlist; # 查看进程列表
每隔一分钟清空表数据
create event truncate_event
on schedule
every 1 minute
do
truncate table event_table;
# 这里使用truncate清空表数据
当然也可以用delete from event_table;
但是使用truncate清空表数据效率要快一些。
# 数据库中的时间单位有:year年、month月、day日、week星期、hour小时、minute分钟、second秒钟、microsecond微秒。
单独开启/禁用某个事件
开启和关闭事件调度器会使所有的事件都同时开启或关闭,那如何对单个事件进行开启或关闭呢?
1、单独禁用某个事件
alter event insert_event disable;
2、单独开启某个事件
alter event insert_event enable;

# 事件调度器像是一个总开关
而每个单独的事件都有一个自己独立的开关

创建一个清空表事件,7天之后开启事件,每天清空表,一个月后停止并删除事件。

create event clear1_event
on schedule
every 1 day # 每隔1天
start current_timestamp + interval 7 day # 7天后开启
ends current_timestamp + interval 1 month # 1月后停止
on completion not preserve # 停止后不保留事件
do
truncate table event_table;

创建一个清空表事件,固定时间点清空表数据

create event clear2_event
on schedule
at '2019-11-2 22:40:0' + interval 3 day # 固定时间点
do				# 可用interval关键字加上间隔时间
truncate table event_table;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值