mysql写存储过程并定时调用
设置一个定时任务:定时为test表中endtime中插入当前时间
1、创建表
-- 创建一个表test:字段endtime
CREATE TABLE test (endtime DATETIME);

2、创建存储过程
-- 创建函数 test ():向test插入endtime=当前时间 CREATE PROCEDURE test ()
BEGIN
INSERT INTO test
SET endtime = now();
END;
注:运行上面的SQL之后生成以下存储过程,点击运行,可以验证该存储过程是否正确。
3、创建事件
-- 设置定时任务:每隔30分钟调用一次函数-test ()
CREATE EVENT
IF NOT EXISTS e_test ON SCHEDULE EVERY 30 SECOND ON COMPLETION PRESERVE DO
CALL test ();
注:运行上面的SQL之后生成以下事件,也可以使用工具直接生成。

3、计划制定
注:点击计划,可以查看和修改计划。图示表示:从2019-09-07 16:34:52开始,每个30秒,执行一次该事件。

4、验证
【1】验证存储过程
查看test里面并没有每隔30秒插入一条数据,没有成功的话,先检查存储过程,结果是运行成功,那就是事件出了问题,后面检查事件。

【2】验证事件状态
查看事件的状态:disable,改为enable


【3】验证事件计划(开启事件调度器)
保存时发现定时任务报错:报”事件计划已关闭,事件只能在服务器启动并开启事件计划时才能处理”。接着去开启事件。
-- 查看event是否开启 SHOW VARIABLES LIKE '%event_sche%';

-- 开启事件调度器
set global event_scheduler =1;
-- 或者
set global event_scheduler=on;
注:运行上面sql后,再次查看,发现event_scheduler的结果为on

去test刷新观察,发现每隔30秒在向test插入数据,说明事件调度成功。
【4】关闭事件调度器
后面如果不想继续添加,可以关闭事件调度器
-- 关闭事件调度器
set global event_scheduler =0;
-- 或者
set global event_scheduler=off;
mysql写存储过程并定时调用的更多相关文章
- 实战:mysql写存储过程并定时调用
有表:cap_meter_detail 字段:recordtime 情景:recordtime每半个小时记录一次,故一天会产生很很多数据,我们要做的是,每天00:00:00对cap_meter_det ...
- mysql写存储过程根据时间变化增加工龄
在工作中遇到要程序根据时间自动增加工龄的需求. php没办法自己发起请求,又不想在服务器上写计划任务crontab,通过用户请求来更改又不能保证用户会去操作. 用数据库的存储过程和事件来完成. 数据库 ...
- MySQL数据库----存储过程
存储过程 存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql -- 存储过程的优点: -- 1.程序与数据实现解耦 -- 2.减少网络传输的 ...
- MySql创建存储过程,并使用事件定时调用
一.使用命令行创建存储过程的步骤 :参数详情参考 https://www.mysqlzh.com/ 1.模板 delimiter $$ # 设置分隔符为 '$$' ,mysql默认的语句分隔符为 ' ...
- JAVA如何调用mysql写的存储过程
存储过程是干什么的,自己百度,百度上讲的比我讲的好.为什么要用存储过程,这样可以提高效率.废话少说,直接上代码: 首先说一下语法:在mysql中写存储过程 DELIMITER $$ CREATE /* ...
- MySQL存储过程_创建-调用
阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的"脚本" 创建存储过程 调用存储过程 存储过程体 语句块标签 存储过程的参数 in:向过程里传参 out:过程向 ...
- shell脚本 如何调用Mysql的存储过程 解决方案
今天遇到一个在shell脚本里面要调用MySQL的存储过程,查阅了很多资料,发现有的都不好用,自己调试出了如下一种,拿来共享: 用mysql -e “ ”: 例如: mysql -uroot -p ...
- MySQL 开启事件 使用定时器调用存储过程
mysql定时器是系统给提供了event,而oracle里面的定时器是系统给提供的job.废话少说,下面创建表:create table mytable (id int auto_incremen ...
- JDBC对MySQL数据库存储过程的调用
一.MySQL数据库存储过程: 1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完成特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中,用 ...
随机推荐
- PHP 中$_SERVER的用法
php编程中经常需要用到一些服务器的一些资料,我把常用的用高亮的方式贴出来,其余的放在后面.方便以后查阅$_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言 $_SERVER ...
- Android Dalvik虚拟机
虽然Android平台使用Java来开发应用程序,但Android程序却不是运行在标准Java虚拟机上的. 可能是出于效率和版权的考虑,Google为Android专门设计了一套虚拟机Dalvik V ...
- HihoCoder 1502 : 最大子矩阵 (双指针)
描述 给定一个NxM的矩阵A和一个整数K,小Hi希望你能求出其中最大(元素数目最多)的子矩阵,并且该子矩阵中所有元素的和不超过K. 输入 第一行包含三个整数N.M和K. 以下N行每行包含M个整数,表示 ...
- 洛谷 P3803 多项式乘法(FFT) —— FFT
题目:https://www.luogu.org/problemnew/show/P3803 终于学了FFT了! 参考博客:https://www.cnblogs.com/zwfymqz/p/8244 ...
- bzoj2687
整体二分+决策单调性 这个方法已经忘了... 决策单调性是指dp[i]由dp[1]->dp[i-1]更新,那么当dp[j]比dp[k]优且j>k时,对于i->n j都比k优 通过这个 ...
- Python深入浅出property特性属性
导语 在Java中,通常在类中定义的成员变量为私有变量,在类的实例中不能直接通过对象.属性直接操作,而是要通过getter和setter来操作私有变量. 而在Python中,因为有property这个 ...
- 解决 'chromedriver' executable needs to be in PATH.'报错
试了把chromedriver.exe放到chrome安装文件下,python安装文件下,然后把路径配到path里,均无用. 最后是修改函数调用得以解决: from selenium import w ...
- Eclipse 安装Maven插件
这个好: http://www.iteye.com/topic/1123225 其他: 1先安装subeclipse插件就是svn svn - http://subclipse.tigris.org/ ...
- sql server 2008 删除某数据库所有表
/* ------sqlserver 2008 删除某数据库所有表-------- */ declare @tname varchar(8000) set @tname='' select @tnam ...
- http协议之基础概念篇(1)
内容概述: 该篇主要内容概述 a.http相关术语解析 b.http的基本原理与工作流程 c.相关工具的使用(Wireshark) 作用介绍 绝大多数的web开发,都是构建在http协议之上的. HT ...
