zoukankan      html  css  js  c++  java
  • mysql添加定时器

    1、event详细信息  

      # 查询所有的event事件
      SELECT * FROM mysql.event;
      # 开启定时器 0:off 1:on
      SET GLOBAL event_scheduler = 1;
      # 查看是否开启定时器
      SHOW VARIABLES LIKE 'event_scheduler';
      # 如果显示OFF,则输入以下语句开启:
      set global event_scheduler = on;

      # 注意

           虽然这里用set global event_scheduler = on语句开启了事件;

      但是每次重启电脑,或重启mysql服务后,会发现,事件自动关闭(event_scheduler=OFF),

      所以想让事件一直保持开启,最好修改配置文件,让mysql服务启动的时候开启时间,

      只需要在my.ini配置文件的[mysqld]部分加上event_scheduler=ON 即可

      配置文件位置:C:ProgramDataMySQLMySQL Server 5.7my.ini

    2、第一个案例

    # 1、创建一个定时器1天执行一次
    # 使用某个数据库
    use secondary;
    delimiter //
    # 创建存储过程maxtime_proce(),名称可以随便起的
    create procedure maxtime_proce()
    begin
        INSERT INTO `secondary`.`maxtime` (`deal_time`)
        #secondary.housedetailtest 表中 deal_time 字段减去 1 天:
        SELECT DATE_SUB(max(deal_time),INTERVAL 1 DAY) AS maxtime FROM secondary.housedetailtest;
    end//
    delimiter ;
    
    # 2、删除存储过程
    # drop procedure maxtime_proce;
    
    # 3、创建定时任务
    # 创建名为minute_event的事件,注意此处没有括号
    create event minute_event
    # 创建周期定时的规则,本处的意思是每1天执行一次
    on schedule every 1 day
    # 表示创建后并不开始生效。
    on completion preserve disable
    # event(事件)的操作内容,表示调用我们刚刚创建的maxtime_proce()存储过程。
    do call maxtime_proce();
    
    # 4、删除定时任务
    # drop event minute_event;
    
    # 5、查看定时任务event(事件),可以查看本机所有的事件
    SELECT event_name,event_definition,interval_value,interval_field,status FROM information_schema.EVENTS;
    
    # 6、开启已经创建好的event(事件)
    alter event minute_event on completion preserve enable;     # 开启定时任务
    # alter event minute_event on completion preserve disable;    # 关闭定时任务

     3、第二个案例

    # 创建定时任务
    CREATE EVENT IF NOT EXISTS maxtime_event 
        # 每天下午10点执行     
        ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 22 HOUR)   
        # 开启定时任务
        ON COMPLETION PRESERVE ENABLE   
        # DO后是需要执行的sql
        DO INSERT INTO `secondary`.`maxtime` (`deal_time`) SELECT DATE_SUB(max(deal_time),INTERVAL 1 DAY) AS maxtime FROM secondary.housedetails;
  • 相关阅读:
    Python 基础知识----数据类型
    drf 之序列化组件
    Django Rest framework 框架之解析器
    css选择器
    Python 爬虫 解析库的使用 --- Beautiful Soup
    Python 爬虫 解析库的使用 --- XPath
    动态渲染页面爬取(Python 网络爬虫) ---Selenium的使用
    HDU 1014(互质数 **)
    HDU 6432(不连续环排列 ~)
    HDU 6433(2的n次方 **)
  • 原文地址:https://www.cnblogs.com/mrfanqie/p/mysql2031.html
Copyright © 2011-2022 走看看