java技术--MySQL事件_梦断若水的博客-程序员宅基地

技术标签: java数据库专栏  

1.mysql事件/定时器开启

(1)SELECT * FROM mysql.event;
(2)SHOW VARIABLES LIKE 'event_scheduler';-- 查看是否开启定时器
     <1>如果显示OFF,则输入以下语句开启:
        SET GLOBAL event_scheduler = on
        SET GLOBAL event_scheduler = 1; -- 开启定时器 0:off 1:on 
     <2>虽然开启了事件,但是每次重启电脑或重启mysql服务后,会发现,事件自动关闭(event_scheduler=OFF)
     <3>想让事件一直保持开启,最好修改配置文件,让mysql服务启动的时候开启时间
     <4>只需要在my.ini配置文件的[mysqld]部分加上event_scheduler=ON 即可
(3)ALTER EVENT eventJob ON  COMPLETION PRESERVE ENABLE;-- 开启事件
(4)ALTER EVENT eventJob ON  COMPLETION PRESERVE DISABLE; -- 关闭事件

2.MySQL事件创建过程

1)创建存储过程,这里的存储过程主要提供给mysql的定时器event来调用去执行:
        <1>如果是复杂的sql逻辑语句,可以使用存储过程
        <2>如果是简单的sql语句,可以使用存储过程也可以直接将sql语句追加在event的do后面(do+sql语句)
        <3>简单应用实例:这里是简单sql,BEGIN...END部分也可以写在event的do后面
        create procedure mypro()
          BEGIN
           insert into mytable (name,introduce,createtime) values ('1111','inner mongolia',now());
         END;2)紧接着创建mysql的定时器event:这里设置为每一秒执行一次      
       create event if not exists eventJob 
       on schedule every 1 second 
       on completion PRESERVE
       do call mypro();
       或者
       do insert into mytable (name,introduce,createtime) values ('1111','inner mongolia',now());3)至此准备工作已经写完了,mysql要想利用定时器必须的做准备工作,就是把mysql的定时器给开启: 
    <1>这一步是使用定时器必须要做的,但是顺序无所谓,
    <2>可以在(1)(2)之前或者之后都可以     
(4)紧接着还要开启事件
    <1>这一步必须要在开启定时器,创建事件完成之后进行
    <2>因为开启事件要使用创建的事件名称
(5)查看定时器状态:
    <1>这一步的顺序无所谓但必须要有,是用来查看定时器是否开启
    <2>如果定时器没有开启,创建的事件是无法使用的

3.事件应用实例:

1)每隔一秒自动调用e_test()存储过程
        CREATE EVENT IF NOT EXISTS event_test
         ON SCHEDULE EVERY 1 SECOND
         ON COMPLETION PRESERVE 
        DO CALL e_test();2)从现在开始每隔九天定时执行 
        CREATE EVENT EVENT1 
          ON SCHEDULE EVERY 9 DAY STARTS NOW() 
          ON COMPLETION PRESERVE ENABLE 
         DO 
         BEGIN 
           CALL TOTAL(); //调用存储过程
         END   
(3) 每个月的一号凌晨1 点执行 
        CREATE EVENT EVENT2 
          ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL     
             DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR) 
         ON COMPLETION PRESERVE ENABLE 
        DO 
        BEGIN 
          CALL STAT(); //调用存储过程
        END 
  (4)每个季度一号的凌晨2点执行 
       CREATE EVENT TOTAL_SEASON_EVENT 
         ON SCHEDULE EVERY 1 QUARTER STARTS DATE_ADD(DATE_ADD(DATE( CONCAT(YEAR(CURDATE()),'- 
         ',ELT(QUARTER(CURDATE()),1,4,7,10),'-',1)),INTERVAL 1 QUARTER),INTERVAL 2 HOUR)  
         ON COMPLETION PRESERVE ENABLE 
      DO 
      BEGIN 
         CALL SEASON_STAT(); //调用存储过程
      END 
   (5) 每年11号凌晨四点执行 
     CREATE EVENT TOTAL_YEAR_EVENT 
         ON SCHEDULE EVERY 1 YEAR STARTS DATE_ADD(DATE(CONCAT(YEAR(CURDATE()) + 1,'-',1,'-
            ',1)),INTERVAL 4 HOUR) 
         ON COMPLETION PRESERVE ENABLE 
     DO 
     BEGIN 
        CALL YEAR_STAT();  //调用存储过程
     END   
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq591009234/article/details/103736030

智能推荐

vue each_Vue 应用单元测试的策略与实践 05 - 测试奖杯策略_weixin_39996496的博客-程序员宅基地

本文首发于 Vue 应用单元测试的策略与实践 05 - 测试奖杯策略 | 吕立青的博客欢迎关注知乎专栏 —— 前端的逆袭(凡可 JavaScript,终将 JavaScript。)欢迎关注我的博客,知乎,GitHub,掘金。本文的目标Vue 项目中测试收益如何最大化,如何配置高性价比的测试策略,即什么地方最该花力气测试,什么地方又可以暂且放一放?// Given一个具备UT基础但找不到着力点的求...

【转】Android进阶——多线程系列之wait、notify、sleep、join、yield、synchronized关键字、ReentrantLock锁_Winter_world的博客-程序员宅基地_android wait、notify、notifyall都必须在synchronized中执行,否

转载一篇关于Android线程操作的博文,博主很有心,总结的很到位,记录下来仅用于学习,感谢!1、Thread是个线程,而且有自己的生命周期2、对于线程常用的操作有:wait(等待)、notify(唤醒)、notifyAll、sleep(睡眠)、join(阻塞)、yield(礼让)3、wait、notify、notifyAll都必须在synchronized中执行,否则会抛出异常4、sy...

sql语句练习_颓废的深沫的博客-程序员宅基地

SQL例题:学生表:Student(sid,sname,sbirth,ssex) –学生编号,学生姓名, 出生年月,学生性别建表:create&nbsp;table&nbsp;Student(&nbsp; &nbsp;sid&nbsp;varchar(20),&nbsp; &nbsp;sname&nbsp;varchar(20) not&nbsp;null&nbsp;default&nbsp;...

Golang构建工具之Makefile_小小平不平凡的博客-程序员宅基地_makefile golang

一、Make是什么Make是一个自动化构建工具,会在当前目录下寻找 Makefile 或 makefile 文件。如果存在,会依据 Makefile 的构建规则去完成构建。实际上,Makefile内都是你根据 make 语法规则,自己编写的特定 Shell 命令等。二、Makefile 规则Makefile文件是多条规则的集合体,每条规则都以一个target(目标)开头,后面接一个 :冒号,冒号后是这一个目标的 prerequisites(前置条件)。接着新开启一行,必须以一个 tab 开头,后面跟随

计算器(栈实现)_wenpu_Di的博客-程序员宅基地

算法: 1.先利用ARR[]存储所需要计算的表达式字符串; opnd存储操作数的栈,optr存储运算符的栈; arr[]存储连续的数字字符,然后转化的整型数; 2.依次读入ARR[]的每个字符(flag为标记),如果是数字字符转化后入opnd栈; 3.如果是运算符,则比较读入的字符与optr栈顶的运算符,根据事先确定的顺序决定是继续读入,是提取opnd的两个操作数计算,还是消除括号; 4

更改Chrome浏览器书签的存放位置_giveupyou的博客-程序员宅基地

最近重新安装系统,以前的chrome书签想保留下来,安装完系统之后,可以直接使用,不会消失,现在跟大家分享一下: 1.点击开始菜单,在运行框中输入%localappdata% ,进入chrome书签保存的文件夹。 2.进入Google文件夹,然后将chrome文件夹拷贝到 E盘根目录下。 3.重新安装系统安装chrome浏览器之后,重复步骤一。 4.删除Google...

随便推点

WBE前端笔记1:HTML中一些不熟悉的标签_化粪池堵塞的凶手的博客-程序员宅基地

文章目录pre标签b标签i标签del标签sup 和 sub 标签pre标签pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。&lt;pre&gt; for(int i=0;i&lt;10;i++){ system.out.println(i); }&lt;/pre&gt;b标签 标签定义粗体的文本。 标签定义了文本中的部分比其余的部分更重要,并呈现为粗体。&lt;b&gt; 粗体字 &lt;/b&gt;i标签 标

Linux Shell 变量自加_dj0379的博客-程序员宅基地_shell变量自加

declare -i iv=$svnvlet iv+=1shell中变量自增的实现方法Linux Shell中写循环时,常常要用到变量的自增,现在总结一下整型变量自增的方法。我所知道的,bash中,目前有五种方法:1. i=`expr $i + 1`;2. let i+=1;3. ((i++));4. i=$[$i+1];5. i=$(( $i

Hulu Palooza | 一场超级skr的公益活动,了解一下?_hulu beijing的博客-程序员宅基地

7月30日蓝天白云 晴空万里(小声唱)突然暴风雨(划掉)这是一个平凡(但不普通)的星期一Why?今天是Hulu Beijing Office集体活动日期盼已久的Hulu Paloo...

SQL 错误 [1502] [72000]: ORA-01502: index 'ROL_ID_KEY' or partition of such index is in unusable state_Lawrence_121的博客-程序员宅基地

插入数据的时候报如下错误:SQL 错误 [1502] [72000]: ORA-01502: index 'ROL_ID_KEY' or partition of such index is in unusable state这个错误是由于索引失效造成的,重建索引后,问题就解决了。过程如下:检查索引状态select index_name,index_type,tablespace_...

phpexcel导出大量数据合并单元格_【PHP】通过PHPExcel导出比较复杂的表格_zhangermin的博客-程序员宅基地

[PHP] 纯文本查看 复制代码/*** excel文件导出** [url=home.php?mod=space&amp;uid=952169]@Param[/url] array $data 需要生成excel文件的数组* $data = [* [NULL, 2010, 2011, 2012],//列名* ...

rt-thread基于stm32标准库的SPI驱动_半岛铁锤的博客-程序员宅基地_stm32_hw_spi_cs

发现rt-thread在某个版本更新中,stm32 BSP下的库函数从标准库切换到了HAL库,HAL库应该是stm32日后发展的主流,但是个人感觉标准库更简洁,易于理解,因此在旧版的RTT上改写了一版SPI的驱动,便于加深对SPI的理解。关于SPI的协议有大量的文章描述,因此不再赘述。一、内核中的SPI deviceSPI包含以下几个结构体:struct rt_spi_device{ struct rt_device parent; struct rt_spi_bus *bus;

推荐文章

热门文章

相关标签