mysql 事件使用

本文详细介绍了MySQL事件调度器的开启、配置与使用方法。包括如何检查和启动事件调度器,事件的创建语法,以及如何定义事件的触发时间、频率和执行后的处理方式。同时,提供了创建事件的实例,如每分钟和每天定时执行的任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql事件开启

show events;
show variables like 'event_scheduler';
set global event_scheduler=ON;

有时候事件没有开启,需要开启

事件语法

CREATE
[DEFINER = { user | CURRENT_USER }]
EVENT
[IF NOT EXISTS]
event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO event_body;


基本点:
schedule:
AT timestamp [+ INTERVAL interval] ...
| EVERY interval
[STARTS timestamp [+ INTERVAL interval] ...]
[ENDS timestamp [+ INTERVAL interval] ...]

interval:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}


a.event_name表示事件的名称
b.schedule表示触发点,【AT timestamp】一般用于只执行一次,一般使用时可以使用当前时间加上延后的一段时间,例如:AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR。也可以定义一个时间常量,例如:AT '2006-02-10 23:59:00';【EVERY interval】一般用于周期性执行,可以设定开始时间和结束时间。
c.ON COMPLETION [NOT] PRESERVE,默认是事件到期后会自动删除。如果想保留该事件使用ON COMPLETION PRESERVE;如果不想保留也可以设置ON COMPLETION [NOT] PRESERVE。
d.ENABLE | DISABLE表示设置启用或者禁止这个事件。
e.COMMENT 表示增加注释。

查看删除事件

查看和删除事件
show events;
show create EVENT test2_insert_5_minute;

drop event test2_insert_5_minute;

创建事件案例

示例,每1分钟执行一次

DROP event IF EXISTS job_to;

DELIMITER //
CREATE EVENT job_to 
ON SCHEDULE EVERY 1 MINUTE 
on COMPLETION  PRESERVE
DO 
BEGIN
call PROC_JOB_TO();

END; 
//
DELIMITER ; 

每天定时执行


DROP event IF EXISTS job_trunc;

DELIMITER //
CREATE EVENT job_trunc 
ON SCHEDULE EVERY 1 DAY STARTS '2018-11-19 00:15:00' 
on COMPLETION  PRESERVE
DO 
BEGIN
call PROC_JOB_TRUNC();

END; 
//
DELIMITER ; 

 

 

 

 

 

 

 

 

 

 

MySQL 事件是一种定时执行的机制,它可以周期性地执行一些操作,比如备份数据库、清理日志等。下面是 MySQL 事件的创建和使用方法: 1. 创建事件 创建事件需要以下步骤: 1)打开 MySQL 客户端。 2)创建事件语法: CREATE EVENT event_name ON SCHEDULE schedule DO event_body; 其中,event_name 为事件名称,schedule 为事件执行的时间表达式,event_body 为事件执行的 SQL 语句。 3)执行创建事件语句。 例如,创建一个每天晚上十点执行备份数据库的事件: CREATE EVENT backup_database ON SCHEDULE EVERY 1 DAY STARTS '2022-01-01 22:00:00' DO BEGIN -- 备份数据库的 SQL 语句 BACKUP DATABASE mydb TO '/backup/mydb.sql'; END 2. 修改事件 如果需要修改事件,可以使用 ALTER EVENT 语句。例如,修改备份数据库事件的执行时间为每周一晚上十点: ALTER EVENT backup_database ON SCHEDULE EVERY 1 WEEK STARTS '2022-01-03 22:00:00'; 3. 查看事件 可以使用 SHOW EVENTS 语句查看所有事件的信息。例如,查看备份数据库事件的信息: SHOW EVENTS LIKE 'backup_database'; 4. 启动/停止事件 可以使用 ALTER EVENT 语句启动/停止事件。例如,停止备份数据库事件的执行: ALTER EVENT backup_database DISABLE; 启动事件的语法为: ALTER EVENT event_name ENABLE; 5. 删除事件 可以使用 DROP EVENT 语句删除事件。例如,删除备份数据库事件: DROP EVENT backup_database; 注意:使用 MySQL 事件需要开启事件调度器,可以在 my.cnf 文件中添加以下配置: event_scheduler=ON 或者在 MySQL 客户端中执行以下语句: SET GLOBAL event_scheduler=ON; 以上就是 MySQL 事件的创建和使用方法。使用事件可以方便地定时执行一些操作,提高数据库的管理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值