zoukankan      html  css  js  c++  java
  • mysql数据库事件

    今天在测试一个存储过程和数据库事件,就是到某一个固定时间,数据库自动调用一个存储过程实现一些功能。

    单独来看事件是没有问题的

    CREATE DEFINER=`root`@`localhost` EVENT `e_renewClueCycle` ON SCHEDULE EVERY 1 MINUTE STARTS '2015-12-09 02:00:00' ON COMPLETION PRESERVE ENABLE DO BEGIN
    CALL `renewClueCycle`();
    END

    后来又手动call了一下存储过程`renewClueCycle`(),也没有问题,达到了预期的功能。

    问题出在到了这个时间,数据库没有执行这个存储过程,后来百度了一下,终于找到了原因,mysql数据库有一个控制变量event_scheduler,这个变量值为ON时,数据库的事件才能生效。

    用sql语句查看这个变量值

    SHOW GLOBAL VARIABLES LIKE 'event_scheduler';

    如果查询得到的value值为OFF,就表示这个功能没有打开,可以执行一下下面的语句来开启

    SET GLOBAL event_scheduler = ON;
    SET @@global.event_scheduler = ON;
    SET GLOBAL event_scheduler = 1;
    SET @@global.event_scheduler = 1;

    相反,如果想关闭这个功能的话,就执行下面的语句

    SET GLOBAL event_scheduler = OFF;
    SET @@global.event_scheduler = OFF;
    SET GLOBAL event_scheduler = 0;
    SET @@global.event_scheduler = 0;

    这个并不是什么技术问题,只是对没怎么接触过mysql的人来说可能不知道这个变量的存在

  • 相关阅读:
    第1章习题
    生成树相关问题
    cf 710 E Generate a String
    树状数组(BIT)
    HDU 5360 Hiking(2015多校联合)
    Apache HttpClient4.0&HtmlCleaner用法
    Android中的长度单位详解(dp、sp、px、in、pt、mm)
    HDU 5328 Problem Killer(2015多校联合)
    HDU 5327 Olympiad(2015多校联合)
    HDU 5335 Walk Out(2015多校联合)
  • 原文地址:https://www.cnblogs.com/quyixuanblog/p/5265943.html
Copyright © 2011-2022 走看看