zoukankan      html  css  js  c++  java
  • mysql 5.1以上版本数据库 使用定时器功能(Event)

    先查看一下你的MSYQL版本,查询版本信息的SQL语句:

    SELECT VERSION()
    确定版本支持之后,再查看一下event是否开启:

    SHOW VARIABLES LIKE '%sche%';

    如果未开启,那如何开启呢?

    SET GLOBAL event_scheduler =1;
    SHOW VARIABLES LIKE '%sche%';

    一般定时执行有2种:
    1、从具体一个时间点开始,每隔一段时间执行一次;
    从现在开始,每30秒执行一次插入一个语句
    CREATE event IF NOT EXISTS e_test
    ON SCHEDULE EVERY 30 SECOND STARTS NOW()
    ON COMPLETION PRESERVE
    DO
    INSERT INTO sdb_yoyi (yoyiscid,orderid) VALUES(2,3)

    也可以把DO后面的改为执行一个存储过程
    例如
    DO
    CALL fn_test_time();
    2、从具体一个时间点开始,在当日的某个时间点进行执行;


    每个月的一号凌晨1点执行
    CREATE event IF NOT EXISTS e_test2
    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
    DO
    INSERT INTO sdb_yoyi (yoyiscid,orderid) VALUES(2,3)
    也可以对事件任务进行关闭:
    ALTER event e_test ON
    COMPLETION PRESERVE DISABLE;
    对已经关闭的事件任务进行开启:
    ALTER event e_test ON
    COMPLETION PRESERVE ENABLE;

    实际演示

    DELIMITER $$
    
    CREATE EVENT `ev_StartCourseMessaag` ON SCHEDULE EVERY 1 DAY STARTS '2013-01-22 08:00:00' ON COMPLETION PRESERVE ENABLE DO BEGIN
            CALL fn_ev_StartCourseMessaag();
        END$$
    
    DELIMITER ;

    DELIMITER $$
    
    CREATE EVENT `ev_ResectHomeWork` ON SCHEDULE EVERY 30 MINUTE STARTS '2013-01-05 16:50:18' ON COMPLETION PRESERVE ENABLE DO BEGIN
    	    CALL fn_even_ResectHomeWork();
    	END$$
    
    DELIMITER ;

    怎么样让mysql每次重启之后,都能自动开启事件呢?   修改mysql配置文件mysql.ini,默认开启event_scheduler。

    在mysql安装的文件夹下找到配置文件my.ini,在[mysqld]的下面加上一句:event_scheduler=ON。这样mysql在启动的时候event sheduler就会自动启动了。

  • 相关阅读:
    搬家通知
    URL tailing slash
    HowTo: Linux Server Change OR Setup The Timezone
    [引] Security tips for web developers
    [转] Finding the Best Programmer's Font
    Recovering deleted Records
    How to stop uwsgi when no pidfile in config?
    [uwsgi] no request plugin is loaded, you will not be able to manage requests.
    Debian Environment Variables
    Memcached vs. MongoDB vs. Redis Comparison
  • 原文地址:https://www.cnblogs.com/joeylee/p/2842971.html
Copyright © 2011-2022 走看看