我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL数据库中怎么实现定时任务

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL数据库中怎么实现定时任务

今天就跟大家聊聊有关MySQL数据库中怎么实现定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、事件概述

在MySQL 5.1中新增了一个特色功能事件调度器(Event Scheduler),简称事件。

事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。

事件和触发器类似,都是在某些事情发生的时候启动。当数据库上启动一条语句的时候,触发器就启动了,而事件是根据调度事件来启动的。由于他们彼此相似,所以事件也称为临时性触发器。事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。

二、事件的优缺点

优点:一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下就非常实用了。

缺点:定时触发,不可以调用。

三、事件调度器参数

事件由一个特定的线程来管理。启用事件调度器后,拥有SUPER权限的账户执行SHOW PROCESSLIST就可以看到这个线程了。

--查看事件是否开启。SHOW VARIABLES LIKE 'event_scheduler';SELECT @@event_scheduler;--全局开启事件调度器SET GLOBAL event_scheduler = ON;--全局关闭事件调度器SET GLOBAL event_scheduler = OFF;--永久开启事件调度器(在my.cnf配置文件中添加)#事件调度器启动状态event_scheduler = on

四、创建事件

一条create  event语句创建一个事件。每个事件由两个主要部分组成,第一部分是事件调度(eventschedule,表示事件何时启动以及按什么频率启动;

第二部分是事件动作(event  action),这是事件启动时执行的代码,事件的动作包含一条SQL语句,它可能是一个简单地insert或者update语句,也可以使一个存储过程或者

benin...end语句块,这两种情况允许我们执行多条SQL。

一个事件可以是活动(打开)的或停止(关闭)的,活动意味着事件调度器检查事件动作是否必须调用,停止意味着事件的声明存储在目录中,但调度器不会检查它是否应该调用。在一个事件创建之后,它立即变为活动的,一个活动的事件可以执行一次或者多次。

相关语法:

CREATE  [DEFINER = { user | CURRENT_USER }]   EVENT   [IF NOT EXISTS]   event_name   ON SCHEDULE schedule   [ON COMPLETION [NOT] PRESERVE]   [ENABLE | DISABLE | DISABLE ON SLAVE]   [COMMENT 'comment']   DO event_body;    schedule:   AT timestamp [+ INTERVAL interval] ...  | EVERY interval   [STARTS timestamp [+ INTERVAL interval] ...]   [ENDS timestamp [+ INTERVAL interval] ...]    interval:   quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |        WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |        DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

说明:

MySQL数据库中怎么实现定时任务

MySQL数据库中怎么实现定时任务

五、事件(定时任务)管理

1. 查询事件

在MySQL中可以通过查询information_schema.events表,查看已创建的事件。

--查看当前所在库的事件show events;--查看所有事件SELECT * FROM information_schema.events;

2. 修改事件

事件被创建之后,还可以使用ALTER EVENT语句修改其定义和相关属性

ALTER[DEFINER={user | CURRENT_USER}]EVENT [IF NOT EXISTS] event_nameON SCHEDULE schedule[ON COMPLETION [NOT] PRESERVE][ENABLE | DISABLE | DISABLE ON SLAVE][COMMENT 'comment']DO event_body;

3. 启动与关闭事件

ALTER EVENT语句可以让一个事件关闭或再次活动。

--启动事件。ALTER EVENT event_name ENABLE;--关闭事件。ALTER EVENT event_name DISABLE;

4. 删除事件

删除已经创建的事件可以使用DROP EVENT语句来实现。

DROP EVENT IF EXISTS event_name;

六、实例演示

1. 事件+sql

创建名称为event_t1的事件,用于每隔5秒钟向数据表t1(用户信息表)中插入一条数据。

-- 创建用户信息表CREATE TABLE IF NOT EXISTS t1( id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户编号', name VARCHAR(30) NOT NULL COMMENT '用户姓名', create_time TIMESTAMP COMMENT '创建时间') COMMENT = '用户信息表';-- 创建事件CREATE EVENT IF NOT EXISTS event_t1ON SCHEDULE EVERY 5 SECONDON COMPLETION PRESERVECOMMENT '新增用户信息定时任务'DO INSERT INTO t1(name,create_time) VALUES('hwb',NOW());

MySQL数据库中怎么实现定时任务

2. 事件+存储过程

--创建总表CREATE TABLE IF NOT EXISTS t_total( userNumber INT  COMMENT '用户数', createtime TIMESTAMP COMMENT '创建时间') COMMENT = '总表';--创建名称为t_total的存储过程,用于统计前面表插入的数量CREATE PROCEDURE t_total()BEGIN DECLARE n_total INT default 0; SELECT COUNT(*) INTO n_total FROM t1; INSERT INTO t_total (userNumber,createtime) VALUES(n_total,NOW());END;--创建名称为event_total的事件,用于在每天12点调用存储过程。CREATE EVENT IF NOT EXISTS event_totalON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 12 HOUR)ON COMPLETION PRESERVE ENABLEDO CALL t_total();

MySQL数据库中怎么实现定时任务

看完上述内容,你们对MySQL数据库中怎么实现定时任务有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL数据库中怎么实现定时任务

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

oracle数据库定时任务怎么写

oracle 数据库的定时任务,称为作业计划程序,可创建和管理定期运行命令或脚本的任务。创建任务的步骤包括:1. 使用 create job 语法创建作业;2. 使用 alter job 语句设置时间表,例如 daily at ;3. 使用
oracle数据库定时任务怎么写
2024-04-08

mysql数据库定时备份怎么实现

有多种方法可以实现MySQL数据库的定时备份,以下是其中一种常用的方法:使用crontab定时任务:首先创建一个备份脚本,比如backup.sh,该脚本可以使用mysqldump命令来备份数据库,如下所示:#!/bin/bashmysql
mysql数据库定时备份怎么实现
2024-04-12

Swoole中怎么实现定时任务

这篇文章主要介绍“Swoole中怎么实现定时任务”,在日常操作中,相信很多人在Swoole中怎么实现定时任务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Swoole中怎么实现定时任务”的疑惑有所帮助!接下来
2023-07-05

定时任务备份mysql数据库,同时备份多个数据库

编写备份数据库的shell脚本创建脚本mkdir -p /root/mysql_dump/datacd /root/mysql_dumpvim mysql_back.sh脚本内容如下#!/bin/sh# File: /root/mysql_dump/mysql
2018-09-25

oracle数据库定时任务怎么写出来

可以通过以下三种方法编写 oracle 数据库定时任务:使用 dbms_scheduler 包创建 scheduler 存储过程和作业。使用 oracle scheduler 服务创建凭据和作业。使用 oracle enterprise m
oracle数据库定时任务怎么写出来
2024-04-18

怎么在java中实现定时任务

这篇文章给大家介绍怎么在java中实现定时任务,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一.分类从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):1、Java自带的java.util.Timer类,这个
2023-06-15

Java中怎么实现SpringBoot定时任务

今天就跟大家聊聊有关Java中怎么实现SpringBoot定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. SpringBoot--任务:定时任务项目开发中经常需要执行一些
2023-06-20

Android中alarmmanager定时任务怎么实现

在Android中,可以使用`AlarmManager`类来实现定时任务。下面是一个基本的步骤:1. 创建一个`PendingIntent`对象,用于描述要执行的操作。2. 获取`AlarmManager`实例。3. 使用`set()`方法
2023-10-08

mysql数据库定时每天备份怎么实现

实现MySQL数据库定时每天备份可以使用以下方法:使用cron定时任务:在Linux系统上,可以使用cron定时任务来实现每天备份MySQL数据库。通过编辑cron表达式,指定备份任务的执行时间。在cron任务中,使用`mysqldump`
2023-10-24

laravel定时任务怎么实现

在 Laravel 中,可以使用 Artisan 命令来创建和管理定时任务。以下是如何实现定时任务的步骤:创建定时任务类:首先,需要创建一个继承自 Illuminate\Console\Scheduling\Schedule 类的定时任务类
laravel定时任务怎么实现
2024-03-04

SpringBoot定时任务怎么实现

这篇文章主要讲解了“SpringBoot定时任务怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot定时任务怎么实现”吧!SpringBoot定时任务主要由两个注解完成
2023-06-05

python怎么实现定时任务

这篇文章主要介绍python怎么实现定时任务,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!用Python实现定时任务有些时候我们需要每隔一段时间就要执行一段程序,或者是往复循环执行某一个任务。比如博主在上篇文章讲的爬
2023-06-14

node怎么实现定时任务

node实现定时任务的方法:1、利用setTimeOut和event事件进行管理;2、对所有加入的事件进行排序,并且计算当前时间和最近一个事件发生时间的时间间隔;3、调用setTimeOut设置回调即可。
2022-11-22

编程热搜

目录