mysql 定时任务和存储过程
mysql 定时任务和存储过程
最近在做日志系统,中间用到了 mysql, 其中有一个要求: 把数据库中 7天之后的日志清除了。看到 mysql 也支持 定时任务。于是就用 mysql 来做了。下面就是这次使用代码。
存储过程
use webapm;
--创建存储过程
DELIMITER $$
CREATE PROCEDURE `p_del_slow`(IN `date_inter` INT)
BEGIN
DELETE FROM slow_duration WHERE (TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(create_time/1000)))>=date_inter;
END$$
DELIMITER ;
DELIMITER $$
CREATE PROCEDURE `p_del_error`(IN `date_inter` INT)
BEGIN
DELETE FROM error_report WHERE (TO_DAYS(NOW()) - TO_DAYS(FROM_UNIXTIME(create_time/1000)))>=date_inter;
END$$
DELIMITER ;
-- 删除存储过程
drop procedure if exists p_del_slow;
drop procedure if exists p_del_error;
-- 列出所有存储过程
select specific_name from mysql.proc;
-- 查看某一个存储过程的具体内容
select body from mysql.proc where specific_name = 'p_del_slow';
-- 调用存储过程
call p_del_slow();
定时任务
-- 查看定时配置开启
show variables like '%event_sche%';
set global event_scheduler=1;
-- 创建定时任务
CREATE EVENT `e_del_slow_route`
ON SCHEDULE EVERY 1 DAY STARTS '2017-12-7 0:0:0'
ON COMPLETION PRESERVE DISABLE
DO CALL p_del_slow (7);
CREATE EVENT `e_del_error_report`
ON SCHEDULE EVERY 1 DAY STARTS '2017-12-7 0:0:0'
ON COMPLETION PRESERVE DISABLE
DO CALL p_del_error (7);
--查看本机所有的事件
SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;
--删除定时任务
drop event if exists e_del_slow_route;
drop event if exists e_del_error_report;
整合
建好定时任务之后,开启定时任务:
--开启定时任务
alter event e_del_slow_route on completion preserve enable;
alter event e_del_error_report on completion preserve enable;
--关闭定时任务
alter event e_del_slow_route on completion preserve disable;
alter event e_del_error_report on completion preserve disable;
总结
在学习过程中,发现了以下问题:
- 使用图形工具连接数据库,发现不能使用这些语句有问题,使用 mysql 命令行客户端没有问题。
- 客户端可以导入.sql 文件,使用
\. event.sql。 - 感谢这个人的博客: http://jiyiren.github.io/2016/03/27/Mysql_schedule/
- 以上的代码均可以使用。
mysql 定时任务和存储过程的更多相关文章
- MySQL定时任务与存储过程实例
shell 定时任务:/usr/bin/mysql -uroot -pxxxxx databasename -e "update table set ......."mysq ...
- mysql定时任务简单例子
mysql定时任务简单例子 ? 1 2 3 4 5 6 7 8 9 如果要每30秒执行以下语句: [sql] update userinfo set endtime = now() WHE ...
- Navicat设定mysql定时任务步骤示例
怎样在Navicat中设置,是数据库按照记录中的日期更新状态字段 其实这个很常用,比如你网站里的某条记录的日期——比如说数据库中某条活动记录的审核日期字段已经过期,亦即当前时间已经超过审核日期,那么定 ...
- mySQL 开启事件存储过程
怎样在Navicat中设置,是数据库按照记录中的日期更新状态字段 其实这个很常用,比如你网站里的某条记录的日期——比如说数据库中某条活动记录的审核日期字段已经过期,亦即当前时间已经超过审核日期,那么定 ...
- mysql 定时任务job
mysql 定时任务job 1.通过show EVENTS显示当前定义的事件 2.检查event_scheduler状态:SHOW VARIABLES LIKE 'event_scheduler' 3 ...
- mysql定时任务(数据库管理工具and 纯命令行)
1.工具:Navicat 2.通过下列语句l爱查询event是否开启 打开Navicat命令列界面(点击工具可以看到或按F6) 输入下面命令 show variables like '%sche%'; ...
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 &l ...
- 2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器
@ 目录 视图是什么 视图的优点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 MySQL创建视图 ...
- MySql通用分页存储过程
MySql通用分页存储过程 1MySql通用分页存储过程 2 3过程参数 4p_cloumns varchar(500),p_tables varchar(100),p_where varchar(4 ...
随机推荐
- Xamarin.Forms初始
前言 Xamarin.Forms 为 .NET 开发人员提供一个完整的跨平台 UI 工具包. 在 Visual Studio 中使用 C# 生成完全本机的 Android.iOS 和通用 Window ...
- 使用boost库生成 随机数 随机字符串
#include <iostream> #include <boost/random/random_device.hpp> #include "boost/rando ...
- smali语法积累记录
1.constructor 我们知道运行一个类的时候会先调用static方法中的内容,比如: static { System.loadLibrary("qihooTest"); } ...
- BZOJ_2850_巧克力王国_KDTree
BZOJ_2850_巧克力王国_KDTree Description 巧克力王国里的巧克力都是由牛奶和可可做成的.但是并不是每一块巧克力都受王国人民的欢迎,因为大家都不喜 欢过于甜的巧克力.对于每一块 ...
- c++再探string之eager-copy、COW和SSO方案
在牛客网上看到一题字符串拷贝相关的题目,深入挖掘了下才发现原来C++中string的实现还是有好几种优化方法的. 原始题目是这样的: 关于代码输出正确的结果是()(Linux g++ 环境下编译运行) ...
- bzoj3625
fft 分治虽然是万能的,但是太慢了 分治是nlog^2n的,太慢了,于是我们用求逆和开根 设f(x)表示答案为x的方案数 c表示物品的生成函数 那么f=f*f*c+1 f*f表示左右儿子的方案数 c ...
- bzoj1598
K短路 和超级钢琴之类的差不多 先反图跑最短路,从原点向外拓展,每个点最多拓展k次,否则不可能是k短路 #include<bits/stdc++.h> using namespace st ...
- C杂谈
最近在做关于C的项目开发,记录一下有关C的操作,比较杂乱 1.利用System进行文件数量统计: 1) system("dir /b /s /ad d:\\mydir\\*.* | find ...
- 安装java之后,找不到tools.jar 和dt.jar
可能很多初学者和我一样,在初次接触java开发的过程中,急于看到最终的结果,匆匆在网上下载了jdk之后,点击安装,结果等安装完,开始配置classpath时,发现jdk/lib下面根本就没有 tool ...
- ActionBar 溢出菜单和兼容问题解决
当我们想做一个类似于微信菜单 很快我们应该可以想到可以用support-v7包或者actionbarshecklock,然后就写menu布局,如下 <menu xmlns:android=&qu ...