mysql使用Navicat创建每5秒执行一次sql语句事件

编程入门 行业动态 更新时间:2024-10-25 22:37:41

一、查询事件调度器event scheduler是否开启

show variables like 'event_scheduler'

二、查询结果

1、如果为on,说明事件调度器已经开启

2、如果显示OFF,则输入以下语句,开启事件调度器

set global event_scheduler = on;

三、设置事件开机自动启动

在重启电脑后event_scheduler会自动关闭,所以我们要设置调度器随着mysql的启动而启动,需要在my.ini配置文件的[mysqld]部分加上

event_scheduler=ON


四、创建event:每天自动清空表

CREATE EVENT
IF
	NOT EXISTS updlogStatus 
	ON SCHEDULE EVERY 5 SECOND 
	ON COMPLETION PRESERVE 
	DO
	UPDATE cmd_log log 
	SET log.STATUS = '19' 
WHERE
	log.time < SUBDATE( now(), INTERVAL 15 SECOND ) 
	AND log.STATUS = '15'
#注释:
 ON SCHEDULE EVERY 5 SECOND 按计划每5秒执行一次该事件
 ON COMPLETION PRESERVE  指定创建完成后即启用,否则需手动启动
 UPDATE cmd_log log 
	SET log.STATUS = '19' 
WHERE
	log.time < SUBDATE( now(), INTERVAL 15 SECOND ) 
	AND log.STATUS = '15' 自己的业务需求我是修改时间小于15秒之前的log日志为15的改成19
DROP EVENT IF EXISTS e_delete_upvote;
CREATE  EVENT e_delete_upvote   
 ON SCHEDULE EVERY 1 day STARTS date_add(concat(current_date(), ' 00:00:00'), interval 0 second)
 ON COMPLETION PRESERVE ENABLE
 DO
 TRUNCATE TABLE dreamland.upvote;
 
#注释:
 ON SCHEDULE EVERY 1 day 指定循环间隔为每天执行
 STARTS date_add(concat(current_date(), ' 23:59:00'), interval 0 second) 指定运行时间为23:59:00
 ON COMPLETION PRESERVE ENABLE 指定创建完成后即启用,否则需手动启动

在计划里面可以修改清空数据的间隔时间,可以用来测试使用。

五、手动关闭事件

ALTER EVENT e_delete_upvote DISABLE;

六、手动设置该事件为可用

ALTER EVENT e_delete_upvote ENABLE;

七、查看已有的定时事件任务

SHOW EVENTS;

八、删除事件

DROP EVENT e_delete_upvote;

更多推荐

mysql使用Navicat创建每5秒执行一次sql语句事件

本文发布于:2023-06-14 02:25:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1427630.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语句   事件   mysql   Navicat   sql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!