zoukankan      html  css  js  c++  java
  • 【MySQL】玩转定时器

    1、前置条件,你需要将服务器和mysql的时间都设置成东八区,php.ini和my.cnf配置(参考上篇文章)

    2、进入mysql客户端,推荐Navicat for mysql

    3、首先查看是否开启了定时器的功能:

    ####调试MYSQL定时器 --时间设置正确情况下执行下面没影响 xzz1128 #####
    set time_zone = '+8:00';
    SHOW VARIABLES LIKE 'event_scheduler';##查看是否开启了event定时器功能
    set GLOBAL event_scheduler = 1; //开启
    select NOW();

    4、提醒:虽然这里用set global event_scheduler = on语句开启了事件,但是每次重启电脑。或重启mysql服务后,会发现,事件自动关闭(event_scheduler=OFF),所以想让事件一直保持开启,最好修改配置文件,让mysql服务启动的时候开启时间,只需要在my.cnf配置文件的[mysqld]部分加上event_scheduler=ON 即可,如下:

    5、首先、新建user表:

    复制代码
    -- ----------------------------
    -- Table structure for `user`
    -- ----------------------------
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `name` varchar(200) NOT NULL,
      `address` varchar(500) NOT NULL,
      `addtime` datetime NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    复制代码

    然后、新建事件,有两种事件类型,一个是间隔触发,另一个是特定事件触发。

    6、下面代码中分别介绍了定时器执行持续性动作(每个时间点需要干的)一次性动作(只用一次,用完即甩)

    #################  mysql持续性定时器 -xzz 1128 ##########################
    DROP EVENT IF EXISTS `event_minute`;
    DELIMITER ;;
    CREATE DEFINER=`root`@`localhost` EVENT `event_minute` ON SCHEDULE EVERY 1 MINUTE STARTS '2017-11-28 15:26:00' 
    ON COMPLETION PRESERVE #当这个事件不会再发生的时候不会被Drop掉
    ENABLE DO 
    
    BEGIN
        INSERT INTO `user`(name, address,addtime) VALUES('test1','test1',now());
        INSERT INTO `user`(name, address,addtime) VALUES('test2','test2',now());
    END
    ;;
    DELIMITER ;
    ##################mysql一次性定时器#################################
    DROP EVENT IF EXISTS `event_at`;
    DELIMITER ;;
    CREATE DEFINER=`root`@`localhost` EVENT `event_at` ON SCHEDULE AT '2017-11-28 15:39:00' 
    ON COMPLETION NOT PRESERVE #当这个事件不会再发生的时候会被Drop掉
    ENABLE DO 
    
    BEGIN
        INSERT INTO `user`(name, address,addtime) VALUES('AT','AT',now());
    END
    ;;
    DELIMITER ;

    7、其他比较重要的操作语句

    ###关闭打开定时器
    ALTER EVENT event_minute DISABLE; 
    ALTER EVENT event_minute ENABLE;
    ###查询定时器状态
    select * from mysql.event ;

    8、看看效果:

    8、感谢:

    @Author      风一样的码农
    @HomePageUrl http://www.cnblogs.com/chenpi/ 

  • 相关阅读:
    JS入门(二)
    JavaScript中冒泡排序
    JS入门(一)
    页面的编写(二)
    页面的编写(一)
    编写页面之前的准备
    2019 ICPC徐州网络赛 K.Center
    2019 ICPC徐州网络赛 B.so easy(unordered_map)
    2018-2019 ICPC焦作区域赛B
    2019南昌ICPC网络赛 H.The Nth Item(矩阵快速幂+欧拉降幂+数学处理)
  • 原文地址:https://www.cnblogs.com/xuzhengzong/p/7910430.html
Copyright © 2011-2022 走看看