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

yizhihongxing

使用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日

相关文章

  • 20分钟MySQL基础入门

    20分钟MySQL基础入门攻略 简介 MySQL 是一种关系型数据库管理系统,广泛用于网站开发等领域。本文将介绍 MySQL 的基础知识、语法和操作,帮助初学者快速了解和上手 MySQL。 MySQL基础知识 数据库 MySQL 中的数据库是一个容器,用于存储数据。可以类比为文件夹,在数据库中可以创建多个表。 表 表是 MySQL 中最基本的存储单位,有行和…

    database 2023年5月22日
    00
  • Thinkphp批量更新数据的方法汇总

    感谢您对ThinkPHP的关注。下面是关于“ThinkPHP批量更新数据的方法汇总”的完整攻略: 一、ThinkPHP批量更新数据的方法汇总 在ThinkPHP中,更新数据时可以使用update方法,但如果需要批量更新多条数据,可以使用其中的一些批量更新数据的方法: saveAll方法 该方法可以批量更新数据,它接收一个数组参数,数组的每一个元素代表一个数据…

    database 2023年5月22日
    00
  • Django数据库迁移常见使用方法

    下面是关于”Django数据库迁移常见使用方法”的完整攻略: 1. 简介 在Django中,数据库迁移可以帮助我们通过代码管理数据库的变更。每当我们有关于模型结构的更改时,我们都需要运行一次迁移,以同步数据库。本篇攻略将会介绍Django数据库迁移的常见使用方法。 2. 迁移的基本操作 在开始使用数据库迁移之前,我们需要安装Django及其相关组件,具体方法…

    database 2023年5月22日
    00
  • sql server的 update from 语句的深究

    下面是一份 SQL Server update from 语句的深入攻略。 什么是 Update from 语句? Update from 语句是一种 SQL Server 的数据更新语句,它可以根据查询结果集来更新某个或多个数据表中的数据。通常情况下,Update from 语句可以更加高效、有效地更新大批量数据。 Update from 语句的一般格式:…

    database 2023年5月21日
    00
  • oracle数据库删除数据Delete语句和Truncate语句的使用比较

    下面是关于“oracle数据库删除数据Delete语句和Truncate语句的使用比较”的详细攻略。 1. Delete语句和Truncate语句的定义 Delete语句:从表中删除指定的行,可以通过WHERE子句指定要删除的行,也可以删除整张表。 Truncate语句:删除表中所有的行,但是保留表的结构。它是一个DDL语句,不能回滚操作。 2. Delet…

    database 2023年5月21日
    00
  • Mysql超时配置项的深入理解

    Mysql超时配置项的深入理解 背景 Mysql是一款非常流行的关系型数据库管理系统,广泛应用于各种Web应用程序中。在使用Mysql时,经常会遇到连接超时、查询超时等问题,这些问题往往需要通过调整Mysql的超时配置项进行解决。本文将对Mysql的超时配置项进行深入解析,并通过示例说明如何正确地配置超时项,以保证Mysql的正常运行。 Mysql超时配置项…

    database 2023年5月22日
    00
  • demo项目开发(Python+flask+mysql+redis只包含后端接口)

    【demo项目开发需求】 用户信息管理,可以注册、登录、添加用户、删除用户 注册:任何用户可以注册,对用户提交的注册信息进行校验,返回对应的信息,其中:   用户名:必填,唯一   密码:必填,只能6-12位,入库是加盐加密   真实名:必填   性别:非必填,只能0(male)或者1(female)   电话:必填,唯一,满足电话要求,数字,且11位 登录…

    MySQL 2023年4月12日
    00
  • sqlserver 不能将值NULL插入列id(列不允许有空值解决)

    当我们向 SQL Server 中的表中插入一条记录时,如果该表的列定义为不允许为空(即该列定义为 NOT NULL),并且在插入记录时该列的值为 NULL,那么就会插入失败,并提示错误信息“不能将值 NULL 插入列 xx (列不允许有空值)”。这是因为该列定义为不允许为空,所以必须为该列提供一个非空的值,否则就会导致插入失败。 要解决该问题,我们可以采取…

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