定时任务的配置

  • 1、操作
  • 2、详细讲解

这篇文章可以解决mysql的一些定时或是循环操作的工作。

1、操作

(1)、查看数据库定时策略是否开启

show variables like '%event_sche%';

运行结果

OFF表示没有开启,修改成ON(修改后查再看一次确保修改成功)

set global event_scheduler=1;


(2)、创建procedure(存储过程)

use demo;
delimiter //
create procedure demo_pro()
begin
-- (begin后end//前放要定时处理的sql用;结尾,可以放多个sql)
update app01_dnsinfo set sniff_time = DATE_ADD(NOW(),  INTERVAL  FLOOR(1 + (RAND() * 10800))   SECOND );
end//
delimiter ;


(3)、创建定时任务

-- 创建名为demo01的定时任务
create event demo01
-- 每天凌晨一点开始执行
ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
on completion preserve disable
-- 任务使用demo_pro()作为执行体
do call demo_pro();

(4)查看任务建立情况并开启任务
查看任务是否创建完毕

SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;


开启和关闭任务

-- 开启和关闭创建好的事件
-- 开启定时任务
ALTER EVENT demo01 ON COMPLETION PRESERVE ENABLE;
-- 关闭定时任务
ALTER EVENT demo01 ON COMPLETION PRESERVE DISABLE;

删除定时任务

drop event demo01;

业务原sql(需求是每天更新表中时间为当天的随机时间)


-- 查看定时策略是否开启
show variables like '%event_sche%';
-- 开启定时策略(ON是开启状态)
set global event_scheduler=1;
-- 创建procedure(存储过程)
use 123;
delimiter //
create procedure updateTime()
begin
update demo_table set demo_time = DATE_ADD(NOW(),  INTERVAL  FLOOR(1 + (RAND() * 10800))   SECOND );
end//
delimiter ;
-- 创建定时任务
create event updateTime_LY
ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
on completion preserve disable
do call updateTime();
-- 查看定时任务事件
SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;
-- 开启和关闭创建好的事件
alter event updateTime_LY on completion preserve enable;//开启定时任务
alter event updateTime_LY on completion preserve disable;//关闭定时任务
-- 删除
drop event updateTime_LY;

2、详细讲解

(1)event_scheduler的修改会随着数据库服务器重启恢复到原来状态,设置开机自动开启需要配置mysql的配置文件my.ini添加下面的一行配置

[mysqld]
event_scheduler=ON

(2)、procedure
delimiter // 这个的意思是将语句结尾的;修改为以//结尾,这样可以保证多条语句的完整执行,并且在结尾我们用delimiter ;把结尾字符修改回来了。
(3)、对于任务的执行方式再此追加几种时间控制

-- 单位有:SECOND,MINUTE,HOUR,DAY,WEEK(周),QUARTER(季度),MONTH,YEAR
-- 每秒执行1次
ON SCHEDULE EVERY 1 SECOND
-- 每两分钟执行1次
ON SCHEDULE EVERY 2 MINUTE
-- 每3天执行1次
ON SCHEDULE EVERY 3 DAY
-- 5天后执行
ON SCHEDULE AT CURRENT_TIMESTAMP()+INTERVAL 5 DAY
-- 10分钟后执行
ON SCHEDULE AT CURRENT_TIMESTAMP()+INTERVAL 10 MINUTE
-- 在2016年10月1日,晚上9点50执行
ON SCHEDULE AT '2021-12-01 1:50:00'
-- 5天后开始每天都执行执行到下个月底
ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP()+INTERVAL 5 DAY ENDS CURRENT_TIMESTAMP()+INTERVAL 1 MONTH
-- 从现在起每天执行,执行5天
ON SCHEDULE EVERY 1 DAY ENDS CURRENT_TIMESTAMP()+INTERVAL 5 DAY
-- 每天凌晨一点执行
ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)
-- 每个月的五号一点执行一次
ON SCHEDULE EVERY 5 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR)
-- 每年一月一号凌晨三点执行一次
ON SCHEDULE  EVERY 1 YEAR STARTS DATE_ADD(DATE(CONCAT(YEAR(CURDATE()) + 1,'-',1,'-',1)),INTERVAL 3 HOUR)

所触及的领域是星辰大海,初心就想问个为什么,不懂的越来越多,尽心为之吧。

Mysql定时任务配置详解相关推荐

  1. mysql数据 odbc_MySQL数据库之mysql odbc 配置详解、解决方案

    本文主要向大家介绍了MySQL数据库之mysql odbc 配置详解.解决方案 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.安装mysql 以及mysql odbc 要注 ...

  2. mysql odbc_MySQL数据库之mysql odbc 配置详解、解决方案

    本文主要向大家介绍了MySQL数据库之mysql odbc 配置详解.解决方案 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.安装mysql 以及mysql odbc 要注 ...

  3. mysql innodb 设置详解_【mysql】mysql innodb 配置详解

    MySQLinnodb 配置详解 innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响.默认的设置只有8M,所以默认的数据库设置下面InnoD ...

  4. Mysql安装配置详解

    Mysql安装 下载mysql-8.0.19-winx64.zip 安装 配置 1.环境变量 2.添加配置文件my.ini 3.cmd 修改密码 本文为安装配置部分 记录本人mysql安装过程出现的问 ...

  5. Linux—MySQL安装配置详解

    1.MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码 ...

  6. mysql odbc 配置详解

    1.安装mysql 以及mysql odbc 要注意自己的版本 版本都要统一(32位 或者64位) 2.出现的error 1989 126错误代码 Error 1918. Error installi ...

  7. Mysql.cnf配置详解

    先附上自己的配置表 [mysqld] user=mysql basedir=/usr/local/mysql datadir=/usr/local/mysql/data character-set-s ...

  8. mysql-5.2 lib_Centos 5.2下安装多个mysql数据库配置详解

    一.编译安装第一个MySQL 5.1.33 cd /opt /usr/sbin/groupadd mysql /usr/sbin/useradd -g mysql mysql -s /bin/nolo ...

  9. MySQL 数据库安装、完全卸载与配置详解和NavicatforMySQL下载及使用以及PyMySQL数据库的搭建

    本文内容包括三大块: MySQL 数据库安装 MySQL 数据库完全卸载 MySQL 数据库配置详解 NavicatforMySQL下载及使用 PyMySQL数据库的搭建 大家可以按需提取内容,当然觉 ...

最新文章

  1. About Gnu Linker2
  2. ZigBee,ZStack
  3. 内核实现信号捕捉原理
  4. insert自动跳过存在数据_轻松入门mongo 数据库
  5. 更改一个视频文件夹下视频文件的文件名
  6. AndroidStudio Git 更改gitlab 地址
  7. php结束外部程序,PHP执行外部程序的方法
  8. 【机器学习-西瓜书】八、Bagging;随机森林(RF)
  9. 移动App 网络优化细节探讨
  10. (转)美国:2016-2045新科技趋势报告
  11. 视频教程-R语言绘图基础-其他
  12. Si24R1超低功耗高性能2.4G无线收发器芯片
  13. 前端性能优化实践:让视频加载也“懒”一点
  14. 洛谷 P1359 租用游艇(简单dp/Dijkstra)
  15. 帝国cms框架的Webshell
  16. python中base函数_详细的python basemap中各函数的所有参量注释
  17. 华宇(大连)笔试-20190620
  18. HashMap源码解析——构造方法
  19. 自定义一组基函数的最佳平方逼近——matlab实现
  20. oracle 秒转换分钟小时

热门文章

  1. Matlab 高光谱遥感数据处理与混合像元分解
  2. linux ftp 未找到命令,Linux不能使用FTP 命令 -bash: ftp: command not found
  3. AIX 开机自动运行程序
  4. 深入了解视觉语言模型
  5. 如何用webpack打包umd模块并测试打包结果
  6. 【整理】黄伟作品:10g OCP之007研究 and Oracle之RowID研究
  7. (五)算法与数据结构 | BFS和DFS
  8. 使用SQL4Automation让CodeSYS连接数据库
  9. matlab/simulink电力电子仿真直流电机设置和使用
  10. 2020年:maven配置最新阿里云镜像,以及在IDEA中的设置