设置一个定时任务:定时为test表中endtime中插入当前时间

1、创建表

  1. -- 创建一个表test:字段endtime
  2. CREATE TABLE test (endtime DATETIME);

2、创建存储过程

  1. -- 创建函数 test ():向test插入endtime=当前时间
  2.  
  3. CREATE PROCEDURE test ()
  4. BEGIN
  5. INSERT INTO test
  6. SET endtime = now();
  7. END;

注:运行上面的SQL之后生成以下存储过程,点击运行,可以验证该存储过程是否正确。

3、创建事件

  1. -- 设置定时任务:每隔30分钟调用一次函数-test ()
  2. CREATE EVENT
  3. IF NOT EXISTS e_test ON SCHEDULE EVERY 30 SECOND ON COMPLETION PRESERVE DO
  4. CALL test ();

注:运行上面的SQL之后生成以下事件,也可以使用工具直接生成。

3、计划制定

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

4、验证

【1】验证存储过程

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

【2】验证事件状态

查看事件的状态:disable,改为enable

【3】验证事件计划(开启事件调度器)

保存时发现定时任务报错:报”事件计划已关闭,事件只能在服务器启动并开启事件计划时才能处理”。接着去开启事件。

  1. -- 查看event是否开启
  2.  
  3. SHOW VARIABLES LIKE '%event_sche%';

  1. -- 开启事件调度器
  2. set global event_scheduler =1;
  3. -- 或者
  4. set global event_scheduler=on;

注:运行上面sql后,再次查看,发现event_scheduler的结果为on

去test刷新观察,发现每隔30秒在向test插入数据,说明事件调度成功。

【4】关闭事件调度器

后面如果不想继续添加,可以关闭事件调度器

  1. -- 关闭事件调度器
  2. set global event_scheduler =0;
  3. -- 或者
  4. 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. android:textAppearance

    Android之系统自带的文字外观设置及实际显示效果图 android:textAppearancexml布局里面设置文字的外观: 如“android:textAppearance=“?android ...

  2. Vue父子组件间的通信

    父组件通过 props 向下传递数据给子组件,子组件通过 events 向上给父组件发送消息. 父组件: <div> <div style="background:#344 ...

  3. LC_MESSAGES、语言文件po和mo互相转换

    LANGUAGE, LC_ALL, LC_MESSAGES, LANG zz- -   关于这几个环境变量一般认为它们的作用是用来指定程序用户界面语言而且这几个环境变量的优先级是从左到右依次降低的大概 ...

  4. POJ3061 Subsequence

    Subsequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16520   Accepted: 7008 Desc ...

  5. tinymix

    1. tinymix:列出所有的 sound kcontrol 2. tinymix "Capture Volume":读出里面的值 3. tinymix "Captur ...

  6. oracle 10g 静默安装(无图形化)

    Oracle 10g无图形界面安装 此文档是在oracle环境变量已经配置完成,不缺少依赖包的情况下进行安装: 解压oracle的安装包, 首先vi database/response/enterpr ...

  7. Day02:数据类型、字符编码、文件处理

    一.基础数据类型与其内置方法 1. int基本使用:int(3.1) 用途:记录年龄,职级等 只能将包含纯数字的字符串类型转换成整形 特点:1.存一个值. 2.不可变 2.float基本使用 floa ...

  8. Linux下的RTC子系统

    转自:http://blog.csdn.net/weiqing1981127/article/details/8484268 实时时钟的作用主要是为操作系统提供一个可靠的时间,并在断电下,RTC时钟也 ...

  9. debugs

    import os def get_nova_credentials_v2(): d = {} d['version'] = '2.0' d['username'] = os.environ['OS_ ...

  10. Fitnesse 之 Script Table

    在表中每一行代表一个执行脚本. 第一行中的Script关键字表明表格类型,后面紧跟着类名(Fixture)和构造函数中的参数.在一个测试页中如果没有再指定其它Fixture,将一直沿用上一个Fixtu ...