设置一个定时任务:定时为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写存储过程并定时调用的更多相关文章

  1. 实战:mysql写存储过程并定时调用

    有表:cap_meter_detail 字段:recordtime 情景:recordtime每半个小时记录一次,故一天会产生很很多数据,我们要做的是,每天00:00:00对cap_meter_det ...

  2. mysql写存储过程根据时间变化增加工龄

    在工作中遇到要程序根据时间自动增加工龄的需求. php没办法自己发起请求,又不想在服务器上写计划任务crontab,通过用户请求来更改又不能保证用户会去操作. 用数据库的存储过程和事件来完成. 数据库 ...

  3. MySQL数据库----存储过程

    存储过程 存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql -- 存储过程的优点: -- 1.程序与数据实现解耦 -- 2.减少网络传输的 ...

  4. MySql创建存储过程,并使用事件定时调用

    一.使用命令行创建存储过程的步骤 :参数详情参考 https://www.mysqlzh.com/ 1.模板  delimiter $$ # 设置分隔符为 '$$' ,mysql默认的语句分隔符为 ' ...

  5. JAVA如何调用mysql写的存储过程

    存储过程是干什么的,自己百度,百度上讲的比我讲的好.为什么要用存储过程,这样可以提高效率.废话少说,直接上代码: 首先说一下语法:在mysql中写存储过程 DELIMITER $$ CREATE /* ...

  6. MySQL存储过程_创建-调用

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的"脚本" 创建存储过程 调用存储过程 存储过程体 语句块标签 存储过程的参数 in:向过程里传参 out:过程向 ...

  7. shell脚本 如何调用Mysql的存储过程 解决方案

    今天遇到一个在shell脚本里面要调用MySQL的存储过程,查阅了很多资料,发现有的都不好用,自己调试出了如下一种,拿来共享: 用mysql -e “ ”: 例如:   mysql -uroot -p ...

  8. MySQL 开启事件 使用定时器调用存储过程

      mysql定时器是系统给提供了event,而oracle里面的定时器是系统给提供的job.废话少说,下面创建表:create table mytable (id int auto_incremen ...

  9. JDBC对MySQL数据库存储过程的调用

    一.MySQL数据库存储过程: 1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完成特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中,用 ...

随机推荐

  1. linux应用之vi编辑器的安装、配置及用法

    vi(vim是其高级版本)是linux系统上用于文本编辑的一个应用.它的功能十分强大,在日常的系统管理活动或编程中用得都很多.所以用好vi是很有必要的. 学习vi主要学的知识点有:1.vi的配置.2. ...

  2. java学习之super关键字

    对于具有public或者protected属性的父类,其子类若想继承父亲的属性或者方法,那么需要用到super 实例:

  3. Android终端管理器删除文件夹

    终端管理器删除文件夹不能用网上提供的: rm -rf 文件夹名 而要用: rm -r 文件夹名. http://blog.csdn.net/enhancing/article/details/8490 ...

  4. 基于Jenkins+Gitlab的自动化部署实战

    故事背景 一个中小型企业,是典型的互联网公司,当初期的时候可能运维只能标配到2~3人,此时随着公司的发展,项目会逐渐增多.前期部署项目可能都是手动的, 俗称“人肉部署”,这简直是无比的痛苦,不能忍受的 ...

  5. poj1639顶点度限制生成树

    题目:http://poj.org/problem?id=1639 对根的度数有限制的最小生成树: 先忽略根,跑最小生成树,得到几个连通块,再一一与根连上: 然后在限制内用根连出去的边来使生成树更小, ...

  6. 微信小程序 实现websocket长连接 以及断开连接之后自动重连

    app.js let socketMsgQueue = [] let isLoading = false App({ globalData: { userInfo: null, localSocket ...

  7. web集群时代

    随着业务的不断增加,我们的单台服务器承受不住需求,那么我们就需要对此进行伸缩,有两种维度,一种是纵向的也就是增大该台服务器的硬件,再者就是加新服务器与之前的机器组成集群对外提供服务,我们都知道前者是有 ...

  8. C#中,当鼠标移动到控件上,动态显示提示内容 ToolTip

    [背景]写了个C#的小程序,其中在Settings窗体中有些配置参数,希望在鼠标移动到对应的配置选项上,动态显示相关的说明解释内容. [解决过程]1.原先就已经知道,有些控件,是带ToolTipTex ...

  9. Beyond Compare 简体版+注册码

    Beyond Compare 3.3.4.14431 官方简体版+注册码 查阅全文 ›

  10. AI—家庭组机器人平台环境配置,高级人工智能实验总结

    首先说一下我的环境:Ubuntu 12.04 32bit,  gcc 4.6.3 一,安装boost 1.48,建议用这个版本的,不然会出现兼容性问题 步骤: 其实在ubuntu下,可以用一下命令直接 ...