MYSQL事件查看器使用介绍

yizhihongxing

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;

示例说明:

  1. 创建一个每月执行的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;
  1. 查看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点执行一次,事件状态为已启用。

  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技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 详解MySQL ORDER BY:对查询结果排序的4种方法

    MySQL的ORDER BY语句用于对查询结果进行排序,它可以按照一个或多个字段进行排序。它的常见语法如下: SELECT column1, column2, … FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], …; 其中,ORDER BY关键字后面跟着要排序的字段名,…

    MySQL 2023年3月9日
    00
  • 关于MySQL的存储函数(自定义函数)的定义和使用方法详解

    关于MySQL的存储函数(自定义函数)的定义和使用方法详解 MySQL提供了自定义函数的支持,可以根据业务需求定义自己的函数,方便使用和提高效率。本文将详细讲解MySQL存储函数的定义和使用方法。 存储函数定义 MySQL存储函数是一段SQL代码片段,在使用前需要先定义。 以下是定义一个简单的函数的语法: DELIMITER $$ CREATE FUNCTI…

    database 2023年5月22日
    00
  • 如何在Python中插入数据到SQLite数据库?

    在Python中,我们可以使用SQLite数据库存储数据。SQLite是一种轻量级的关系型数据库,它可以在本地文件中存储数据。在Python中,我们可以使用SQLite3模块来连接SQLite数据库,并使用SQL语句来操作数据库。以下是如何在Python中插入数据到SQLite数据库的完整使用攻略,包括连接数据库、创建表、插入数据等步骤。同时,提供两个示例以…

    python 2023年5月12日
    00
  • laravel中Redis队列监听中断的分析

    标题:Laravel中Redis队列监听中断的分析 通过Laravel的Redis队列驱动,我们可以很方便地实现异步任务处理。在实际应用过程中,我们常常会遇到队列监听中断的问题,因为队列中的任务耗时较长,需要时刻保证队列监听进程的运行不被中断,否则任务可能会因为监听进程的异常退出而未能完成,可能会引起意想不到的后果,导致系统安全性问题。 那么,当队列监听进程…

    database 2023年5月22日
    00
  • Docker安装官方Redis镜像并启用密码认证

    下面我将详细讲解“Docker安装官方Redis镜像并启用密码认证”的完整攻略: 1. 下载 Docker 在开始前,需要先下载Docker,Docker官方网址:https://www.docker.com,下载好后通过命令行查看Docker版本: docker version 2. 下载 Redis 镜像 在Docker中,我们使用镜像(Image)来创…

    database 2023年5月22日
    00
  • mysql如何利用binlog进行数据恢复详解

    下面我将为您详细讲解“MySQL如何利用binlog进行数据恢复”的完整攻略。 什么是binlog binlog即二进制日志(Binary Log),记录MySQL服务器中执行的所有修改操作(如insert、update、delete等)。binlog是MySQL复制和数据恢复中最重要的部分之一。 数据恢复需求 当MySQL数据库中的数据遭到误删除、误更改或…

    database 2023年5月22日
    00
  • 对MySQL子查询的简单改写优化

    关于对MySQL子查询的简单改写优化,一般可以采用以下两种方式: 1. 使用连接(JOIN)代替子查询 子查询执行时,会把每个子查询结果保存在临时表中,然后再执行主查询,这就会增加查询语句的运行时间。而连接(JOIN)是更有效的方式,因为它只需要执行一次查询。 以下是一个使用连接代替子查询的示例: SELECT c.customerName, o.order…

    database 2023年5月19日
    00
  • Oracle 处理json数据的方法

    下面我将为您详细讲解如何在Oracle中处理JSON数据。 1. 创建具有JSON数据类型的表 在Oracle 12c及以上版本中,可以通过创建具有JSON数据类型的列来存储JSON数据。我们首先需要使用以下代码创建一个新表,其中包含JSON数据列: CREATE TABLE my_table (id NUMBER, data JSON); 2. 插入JSO…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部