mysql开启事件调度器(Event Scheduler)

事件调度器(Event Scheduler)是自MySQL5.1.6起才开始加入的,所以首先你要确保你使用mysql版本不低于5.1.6。查看版本可以使用命令行或在连接工具(如Navicat)中的连接信息查看“服务器版本”。

一、mysql启用event_scheduler

在命令行界面中,使用如下命令查看和设置。查看和开启mysql的event_scheduler开关

二、新建定时事件

1、使用命令行
语法:
CREATE EVENT [IFNOT EXISTS] event_name
ONSCHEDULE schedule
[ONCOMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT ‘comment’]
DO sql_statement;

[ENABLE | DISABLE]可以设置该事件创建后状态是否开启或关闭,默认为ENABLE。
[COMMENT ‘comment’]可以给该事件加上注释。

例1:每秒插入一条记录到数据表
CREATE EVENT ‘NewEvent’
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION NOT PRESERVE
ENABLE
DO
insert aaa value(‘a’);

例2:2020年5月31日12点整清空aaa表:
CREATE EVENT ‘NewEvent’
ON SCHEDULE AT ‘2020-05-31 12:00:00’
ON COMPLETION NOT PRESERVE
ENABLE
DO
TRUNCATE TABLE aaa;

例3:5天后清空aaa表:
CREATE EVENT ‘NewEvent’
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY
ON COMPLETION NOT PRESERVE
ENABLE
DO
TRUNCATE TABLE aaa;

例4:5天后开启每天清空aaa表
CREATE EVENT ‘NewEvent’
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
ON COMPLETION NOT PRESERVE
ENABLE
DO
TRUNCATE TABLE aaa;

例5:5天后开启每天定时清空aaa表,一个月后停止执行:
CREATE EVENT NewEvent
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH
ON COMPLETION NOT PRESERVE
ENABLE
DO
TRUNCATE TABLE aaa;

2、使用Navicat新建事件
使用Navicat新建事件要简单得多了。
首先,在Navicat找到“事件”,右击选择“新建事件”
在这里插入图片描述
然后,在界面中输入要执行的sql语句和要设定的时间日期等。
在这里插入图片描述
最后,点击“保存”就完成了一个事件的添加了。
注:如果保存的时候有提示event_scheduler=off,则需要按照第一步中的步骤启用event_scheduler。

猜你喜欢

转载自blog.csdn.net/babdpfi/article/details/106423577