如何用mysql自带的定时器定时执行sql(每天0点执行与间隔分/时执行)

使用MySQL自带的定时器可以很方便地实现SQL语句的定时执行,无需使用第三方定时任务软件,下面是详细的攻略:

1. 启用定时器

要使用MySQL自带的定时器,需要先启用定时器功能。在MySQL的配置文件my.cnf中,打开以下配置:

[mysqld]
event_scheduler = ON

重启MySQL服务,或者执行以下语句,使配置修改生效:

SET GLOBAL event_scheduler = ON;

2. 创建定时器

MySQL定时器使用EVENT来表示,可以通过CREATE EVENT语句创建自己的定时器。以下是CREATE EVENT语句的语法:

CREATE EVENT event_name ON SCHEDULE schedule
    DO sql_statement;

其中,event_name是事件名称,schedule是事件调度,sql_statement是要执行的SQL语句。

3. 设置事件调度

事件调度需要设置在SCHEDULE关键字之后,可以使用以下参数:

  • EVERY n [HOUR|MINUTE|SECOND]:表示每隔n小时/分钟/秒执行一次;
  • INTERVAL n [HOUR|MINUTE|SECOND]:表示每隔n小时/分钟/秒执行一次;
  • AT TIME 'hh:mm:ss':表示在每天的某个时间点执行。

以下是一些示例:

  1. 每天0点执行SQL语句
CREATE EVENT everyday_event
ON SCHEDULE EVERY 1 DAY STARTS '2021-12-01 00:00:00'
DO
    -- 要执行的SQL语句

解释:以上的定时任务表示新建一个名为everyday_event的事件,每天00:00时执行SQL语句。

  1. 每隔30分钟执行SQL语句
CREATE EVENT every_thirty_minutes_event
ON SCHEDULE EVERY 30 MINUTE STARTS CURRENT_TIMESTAMP
DO
    -- 要执行的SQL语句

解释:以上的定时任务表示新建一个名为every_thirty_minutes_event的事件,每隔30分钟从当前时间开始执行SQL语句。

4. 查看定时器列表

要查看已经创建的定时器列表,可以使用以下语句:

SHOW EVENTS;

5. 修改/删除定时器

要修改一个已经创建的定时器,可以使用ALTER EVENT语句。要删除一个定时器,可以使用DROP EVENT语句。以下是这些语句的语法:

-- 修改定时器
ALTER EVENT event_name
ON SCHEDULE schedule
DO sql_statement;

-- 删除定时器
DROP EVENT event_name;

以上就是使用MySQL自带的定时器定时执行SQL语句的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何用mysql自带的定时器定时执行sql(每天0点执行与间隔分/时执行) - Python技术站

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

相关文章

  • Mysql MyISAM与InnoDB 表锁行锁以及分库分表优化

    一、 两种存储引擎:MyISAM与InnoDB 区别与作用 1. count运算上的区别: 因为MyISAM缓存有表meta-data(行数等),因此在做COUNT(*)时对于一个结构很好的查询是不需要消耗多少资源的。而对于InnoDB来说,则没有这种缓存。 2. 是否支持事务和崩溃后的安全恢复: MyISAM 强调的是性能,每次查询具有原子性,其执行数度比…

    MySQL 2023年4月13日
    00
  • mybatis关系映射之一对多和多对一

    MyBatis 是一款优秀的 ORM 框架,提供给我们了一些关系映射的解决方案。其中比较常见的一对多和多对一的关系映射,我们可以通过 MyBatis 提供的标签和注解来实现。 一对多关系映射 一对多关系通常是指一个实体类关联多个实体类的情况,例如一个学院对应多个专业,一个专业对应多个学生。在 MyBatis 中,我们可以通过使用 Collection 和 A…

    database 2023年5月21日
    00
  • PHP使用PDO操作sqlite数据库应用案例

    针对这个主题,我将给您提供完整的攻略,帮助您使用PDO操作sqlite数据库,以及两个示例说明。 什么是PDO? PHP PDO(PHP Data Objects)扩展是一种将数据存储在数据库中的通用方式,可用于访问所有支持PDO的数据库。支持PDO的数据库包括MySQL、PostgreSQL和SQLite等。 使用PDO可以方便地操作各种数据库,使我们能够…

    database 2023年5月21日
    00
  • linux环境下配置mysql5.6支持IPV6连接的方法

    下面是在 Linux 环境下配置 MySQL 5.6 支持 IPV6 连接的攻略: 环境准备 确保 MySQL 5.6 已经安装在你的机器上。如果没有,可以使用以下命令进行安装: sudo apt-get install mysql-server-5.6 确保 IPV6 已经开启。可以使用以下命令查看是否已经开启: cat /proc/sys/net/ipv…

    database 2023年5月22日
    00
  • Android中SQLite数据库知识点总结

    Android中SQLite数据库知识点总结 什么是SQLite数据库? SQLite 是一种软件库,它提供了一种轻量级的嵌入式关系型数据库,适用于在不需要复杂的 MySQL 等数据库的场合下存储少量的本地数据。SQLite 集成在 Android 操作系统中,可以通过 API 轻松访问。 SQLite数据库的优势 轻便:SQLite 数据库体积小,运行速度…

    database 2023年5月21日
    00
  • Java基础篇之分布式版本控制工具Git

    Java基础篇之分布式版本控制工具Git 一、什么是Git Git是一个免费开源的分布式版本控制系统。它主要用于管理源代码的版本以及协作开发,支持多人同时开发一个项目,并能够快速有效地与其他开发者交流代码。 二、Git的基本使用 1. 安装Git 官方网站:https://git-scm.com/ 根据你所使用的操作系统下载安装包并安装。安装完成后,在控制台…

    database 2023年5月22日
    00
  • SQL SERVER的优化建议与方法

    下面我将分享一下SQL SERVER的优化建议与方法的详细攻略。 1. 性能优化的基本原则 1.1 优化查询语句 首先要分析查询的语句,尽量避免使用子查询、存储过程等效率低下的语句,优化查询的逻辑结构和语句的写法,例如合理使用索引、避免使用SELECT *、避免使用非必要的UNION等。 1.2 合理设计数据表结构 设计数据表结构的时候要充分考虑查询的需求,…

    database 2023年5月19日
    00
  • 简单了解标准SQL的update语句三种用法

    当我们需要修改数据库中的数据时,可以使用SQL中的update语句。update语句可以用于更新一条或多条数据的值。它的基本语法如下: UPDATE table_name SET column1=value1,column2=value2,… WHERE some_column=some_value; 其中: table_name:需要被修改的表名 co…

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