如何用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日

相关文章

  • centos中mysql备份数据库脚本分享

    下面我将详细讲解在CentOS中使用备份数据库脚本的完整攻略。具体内容包括: 一、准备工作 在使用备份数据库脚本前,我们需要做一些准备工作: 1.安装MySQL客户端 我们需要在CentOS系统中安装MySQL客户端,以便在脚本中使用MySQL命令对数据库进行备份操作,执行以下命令即可: sudo yum install mysql 2.创建备份目录 为了保…

    database 2023年5月22日
    00
  • dockerfile构建redis

    1.准备下载好的redis安装包.yum源:   [root@test test9]# ll总用量 1936-rw-r–r– 1 root root 396 9月 27 13:26 Dockerfile-rw-r–r– 1 root root 1975750 9月 18 09:14 redis-5.0.5.tar.gz             drw…

    Redis 2023年4月13日
    00
  • MySQL8.0开启远程连接权限的方法步骤

    下面是“MySQL8.0开启远程连接权限的方法步骤”的完整攻略。 1. 为什么需要开启远程连接权限 MySQL是一种基于网络的数据库,使用MySQL数据库的常见方式是在本地服务器上安装MySQL并从同一台服务器上与该数据库通信。然而,如果您想从其他计算机上的应用程序连接到MySQL服务,您就需要开启MySQL的远程连接权限。否则,其他计算机将无法访问MySQ…

    database 2023年5月18日
    00
  • 如何使用Python删除数据库中的数据?

    当需要从数据库中删除数据时,可以使用Python连接到数据库并执行SQL删除语句。以下是使用Python删除数据库中的数据的完整攻略: 连接数据库 要连接到数据库,需要提供数据库的主机名、用户名、和数据库名称。可以使用以下代码连接MySQL: import mysql.connector mydb = mysql.connector.connect( hos…

    python 2023年5月12日
    00
  • 如何在centos中安装redis插件bloom-filter

    下面给出安装 Redis 插件 Bloom Filter 的详细步骤: 安装 Redis 首先需要安装 Redis,可以通过以下命令在 CentOS 上进行安装: sudo yum update sudo yum install redis 下载安装 bloom-filter 插件 下载 bloom-filter 源码包 可以访问 Redis 的 Githu…

    database 2023年5月22日
    00
  • oracle保留两位小数解决方案

    如果你需要在Oracle数据库中保留两位小数,下面是一些可用的解决方案。 方案一:使用TO_CHAR函数 使用TO_CHAR函数可以将数字类型转换为字符类型,并指定小数点后的位数。例如,如果要将数字字段salary保留两位小数并转换为字符类型,可以使用以下SQL语句: SELECT TO_CHAR(salary, ‘FM999999999.99’) FROM…

    database 2023年5月22日
    00
  • 详解SQL Server 2016快照代理过程

    详解SQL Server 2016快照代理过程 什么是SQL Server 2016快照代理? SQL Server 2016快照代理是一种用于创建和维护数据库快照(数据库镜像)的技术。通过快照代理,可以将数据从主服务器复制到备份服务器,并保证数据的一致性和完整性。 快照代理的部署过程 首先,需要在主服务器和备份服务器上安装 SQL Server 2016;…

    database 2023年5月19日
    00
  • Mysql中时间戳转为Date的方法示例

    Mysql中存储时间戳和日期时间类型的数据,不同的数据类型在不同的场景下有不同的用途。如果需要将存储的时间戳转换为日期格式,可以利用Mysql中的日期函数来完成,下面就是将此完成的方法的详细攻略。 一、时间戳转化为日期格式的函数 MySQL提供了from_unixtime函数和date_format函数来进行时间戳的转化。前者可以将UNIX时间戳转化为标准的…

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