MYSQL事件查看器使用介绍
MySQL事件(Event)是MySQL数据库中一种定时执行的MySQL代码,可以用于执行一些特定的MySQL任务,表现形式类似于系统中的计划任务。
MySQL事件可以快速便捷的实现自动化业务需求,比如定时邮件发送、定时备份数据、定时统计分析等有价值的MySQL脚本。
下面分为三个部分进行MYSQL事件查看器的使用介绍:
一、如何启用MySQL事件调度器
在MySQL中,事件调度器默认是关闭的,要想使用事件调度器必须手动发出以下命令打开:
SET GLOBAL event_scheduler = ON;
可以使用以下命令进行验证是否成功打开:
SHOW VARIABLES LIKE 'event_scheduler';
显示结果如下,则表明事件调度器已经成功打开:
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
二、如何创建MySQL事件
使用CREATE EVENT语句创建MySQL事件,一个MySQL事件包含事件名称、事件的开始和结束时间、事件的调度时间、事件所执行的SQL语句等。示例如下:
CREATE EVENT myevent
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
DO
BEGIN
INSERT INTO mytable (message) VALUES ('Hello, World');
END;
上例中创建了一个事件名为myevent的MySQL事件,事件将在距当前时间1天后执行,而执行的内容是向mytable表中插入一条消息“Hello, World”。
三、如何查看MySQL事件
可以使用如下命令查看MySQL事件:
SHOW EVENTS;
可以使用如下命令查看有关特定事件的详细信息:
SHOW CREATE EVENT myevent;
示例说明:
- 创建一个每月执行的MySQL事件,在事件调度器启动后,该事件将每月在1号凌晨1点执行一个INSERT语句,向mytable表中插入一行数据。
CREATE EVENT myevent
ON SCHEDULE
EVERY 1 MONTH
STARTS DATE_FORMAT(NOW(),'%Y-%m-01 01:00:00')
DO
BEGIN
INSERT INTO mytable(message) VALUES('This is a monthly task!');
END;
- 查看MySQL事件:
SHOW EVENTS;
显示结果如下:
+----------+----------+-----------+-----------+---------+-----------+----------+------------+----------------------+----------------------+--------------------+-----------------+----------------+------------+------------+----------------+------+----------------------+----------------------+--------------------------+----------------------+----------------------+--------------------+
| Db | Name | Definer | Time zone | Type | Execute at| Interval | Status | Originator | character_set_client| collation_connection| Database Collation| body_utf8| sql_mode | comment | Id | Create Event | Modify Event | Start Time | End Time | Interval Value | Starts |
+----------+----------+-----------+-----------+---------+-----------+----------+------------+----------------------+----------------------+--------------------+-----------------+----------------+------------+------------+----------------+------+----------------------+----------------------+--------------------------+----------------------+----------------------+--------------------+
| mydb | myevent | root@% | SYSTEM | RECUR- | NULL | 1 MONTH | ENABLED | 0 | utf8 | utf8_general_ci | utf8_general_ci | BEGIN INSERT INTO m| TRADITIONAL| This is a monthly task! | 1 | CREATE EVENT myevent| ALTER EVENT myevent | 2021-11-01 01:00:00.0000 | NULL | +00:00:00.00 | |
+----------+----------+-----------+-----------+---------+-----------+----------+------------+----------------------+----------------------+--------------------+-----------------+----------------+------------+------------+----------------+------+----------------------+----------------------+--------------------------+----------------------+----------------------+--------------------+
从上述结果可以看出,myevent事件已经成功创建,事件名称为myevent,时间区间为当前时间往后每月的1号1点执行一次,事件状态为已启用。
- 查看特定事件的详细信息:
SHOW CREATE EVENT myevent;
显示结果如下:
| Event | sql_test.myevent | CREATE DEFINER=`root`@`%` EVENT `myevent` ON SCHEDULE EVERY 1 MONTH STARTS '2021-11-01 01:00:00' ON COMPLETION NOT PRESERVE ENABLE DO INSERT INTO mytable(message) VALUES('This is a monthly task!') |
从上述结果可以看出,myevent事件包含名称、时间调度规则以及事件所执行的SQL语句。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MYSQL事件查看器使用介绍 - Python技术站