1. 注意:5.1以后才支持!

      让MYSQL定期执行指定的一条命令。功能类似于crontab。

      1、 检查你的MYSQL是否开了这个功能

      SHOW VARIABLES LIKE 'event_scheduler';

      我执行了一遍发现记录为空说明我的MYSQL没有开呢。OK解决办法

      2、  打开你的MYSQL的计划任务功能

      使用这个功能之前必须确保event_scheduler已开启,可执行

      SET GLOBAL event_scheduler = 1;
      或SET GLOBAL event_scheduler = ON;
      来开启,也可以直接在启动命令加上 “–event_scheduler=1”,例如:mysqld ... --event_scheduler=1

      my.ini or my.cnf 中的
      [mysqld]
      添加 event_scheduler=ON

      二、创建事件(CREATE EVENT)
      先来看一下它的语法:

      CREATE EVENT [IF NOT EXISTS] event_name
        ON SCHEDULE schedule
        [ON COMPLETION [NOT] PRESERVE]
        [ENABLE | DISABLE]
        [COMMENT 'comment']
        DO sql_statement;

      schedule:
        AT TIMESTAMP [+ INTERVAL INTERVAL]
      | EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]

      INTERVAL:
        quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
                  WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
                  DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

      #单次计划任务: AT 时戳 
      #重复的计划任务 EVERY 时间(单位)的数量 时间单位 [STARTS 时戳][ENDS 时戳] 
      在两种计划任务中,时戳可以是任意的TIMESTAMP 和DATETIME 数据类型,要求提供的是将来的时间(大于CURRENT_TIMESTAMP),而且小于Unix时间的最后时间(等于或小于'2037-12-31 23:59:59') 
      时间单位是关键词:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND 
      3.[ON COMPLETION [NOT] PRESERVE] COMPLETION 当单次计划任务执行完毕后或当重复性的计划任务执行到了ENDS阶段。而声明PRESERVE的作用是使事件在执行完毕后不会被Drop掉 
      4.[ENABLE|DESABLE] ENABLE  开启事件 DESABLE 关闭事件 
      5.COMMENT 注释 
      6.DO sql_statement 执行的sql语句

      1) 首先来看一个简单的例子来演示每秒插入一条记录到数据表

      USE test;
      CREATE TABLE aaa (timeline TIMESTAMP);
      CREATE EVENT e_test_insert
      ON SCHEDULE EVERY 1 SECOND 
      DO INSERT INTO test.aaa VALUES (CURRENT_TIMESTAMP);
      等待3秒钟后,再执行查询看看:

      mysql> SELECT * FROM aaa;
      +---------------------+ 
      | timeline            | 
      +---------------------+ 
      | 2007-07-18 20:44:26 | 
      | 2007-07-18 20:44:27 | 
      | 2007-07-18 20:44:28 | 
      +---------------------+
      2) 5天后清空test表:

      CREATE EVENT e_test
      ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY
      DO TRUNCATE TABLE test.aaa;
      3) 2007年7月20日12点整清空test表:

      CREATE EVENT e_test
      ON SCHEDULE AT TIMESTAMP '2007-07-20 12:00:00'
      DO TRUNCATE TABLE test.aaa;
      4) 每天定时清空test表:

      CREATE EVENT e_test
      ON SCHEDULE EVERY 1 DAY
      DO TRUNCATE TABLE test.aaa;
      5) 5天后开启每天定时清空test表:

      CREATE EVENT e_test
      ON SCHEDULE EVERY 1 DAY
      STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
      DO TRUNCATE TABLE test.aaa;
      6) 每天定时清空test表,5天后停止执行:

      CREATE EVENT e_test
      ON SCHEDULE EVERY 1 DAY
      ENDS CURRENT_TIMESTAMP + INTERVAL 5 DAY
      DO TRUNCATE TABLE test.aaa;
      7) 5天后开启每天定时清空test表,一个月后停止执行:

      CREATE EVENT e_test
      ON SCHEDULE EVERY 1 DAY
      STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
      ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH
      DO TRUNCATE TABLE test.aaa;
      [ON COMPLETION [NOT] PRESERVE]可以设置这个事件是执行一次还是持久执行,默认为NOT PRESERVE。
      8) 每天定时清空test表(只执行一次,任务完成后就终止该事件):

      CREATE EVENT e_test
      ON SCHEDULE EVERY 1 DAY
      ON COMPLETION NOT PRESERVE
      DO TRUNCATE TABLE test.aaa;
      [ENABLE | DISABLE]可是设置该事件创建后状态是否开启或关闭,默认为ENABLE。
      [COMMENT ‘comment’]可以给该事件加上注释。

      三、修改事件(ALTER EVENT)
      ALTER EVENT event_name
        [ON SCHEDULE schedule]
        [RENAME TO new_event_name]
        [ON COMPLETION [NOT] PRESERVE]
        [COMMENT 'comment']
        [ENABLE | DISABLE]
        [DO sql_statement]
      1) 临时关闭事件

      ALTER EVENT e_test DISABLE;
      2) 开启事件

      ALTER EVENT e_test ENABLE;
      3) 将每天清空test表改为5天清空一次:

      ALTER EVENT e_test
      ON SCHEDULE EVERY 5 DAY;
      四、删除事件(DROP EVENT)
      语 法很简单,如下所示:

      DROP EVENT [IF EXISTS] event_name
      例如删除前面创建的e_test事件

      DROP EVENT e_test;
      当然前提是这个事件存在,否则会产生ERROR 1513 (HY000): Unknown event错误,因此最好加上IF EXISTS

      DROP EVENT IF EXISTS e_test;

      create event test
      ON SCHEDULE AT '2007-09-01 12:00:00' + INTERVAL 1 DAY
      on completion not preserve 
      do insert into yyy values('hhh','uuu');

      解释:从2007-09-01开始,每天对表yyy在12:00:00进行一个插入操作。而且只执行一次(on completion not preserve )

      我的计划任务为:

      create event sysplan
      ON SCHEDULE AT '2010-05-22 23:00:00' + INTERVAL 1 DAY
      on completion not preserve 
      do truncate table bjproj.ae_tmp;

      三、通过设定全局变量event_scheduler 的值即可动态的控制事件调度器是否启用。  
      查看是否event_scheduler开启 mysql> SHOW VARIABLES LIKE '%event%'; 
      设置开启 mysql> SET GLOBAL event_scheduler=ON; 
      四、例子: 
      每分钟插入一条日志: DELIMITER // CREATE EVENT `user_log_event` ON SCHEDULE EVERY 1 MINUTE STARTS '2010-12-27 00:00:00'  ON COMPLETION NOT PRESERVE ENABLE DO  BEGIN  INSERT INTO log SET addtime=NOW(); END // 
      调用存储过程: DELIMITER // CREATE EVENT `user_log_event` ON SCHEDULE EVERY 1 DAY STARTS '2010-00-00 00:00:00'  ON COMPLETION NOT PRESERVE ENABLE DO  BEGIN         CALL user_log_prov(); END // 转http://blog.chinaunix.net/u2/84280/article_100139.html

详解 MySQL 的计划任务的更多相关文章

  1. MySQL存储过程详解 mysql 存储过程

    原文地址:MySQL存储过程详解  mysql 存储过程作者:王者佳暮 mysql存储过程详解 1.     存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储 ...

  2. [深入学习Web安全](5)详解MySQL注射

    [深入学习Web安全](5)详解MySQL注射 0x00 目录 0x00 目录 0x01 MySQL注射的简单介绍 0x02 对于information_schema库的研究 0x03 注射第一步—— ...

  3. MySQL数据类型 int(M) 表示什么意思?详解mysql int类型的长度值问题

    MySQL 数据类型中的 integer types 有点奇怪.你可能会见到诸如:int(3).int(4).int(8) 之类的 int 数据类型.刚接触 MySQL 的时候,我还以为 int(3) ...

  4. Mysql常用show命令,show variables like xxx 详解,mysql运行时参数

    MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. 详细: http://dev.mysql.com/doc/ ...

  5. 【文章阅读】详解MySQL数据类型

    详解MySQL数据类型 - 五月的仓颉 - 博客园 http://www.cnblogs.com/xrq730/p/8446246.html 注:对于MySQL的数据类型做了详细的讲解,这是我看过的最 ...

  6. 详解Mysql分布式事务XA(跨数据库事务)

    详解Mysql分布式事务XA(跨数据库事务) 学习了:http://blog.csdn.net/soonfly/article/details/70677138 mysql执行XA事物的时候,mysq ...

  7. 详解MySQL索引

    原文链接详解MySQL索引 索引介绍 索引是帮助MySQL高效获取数据的数据结构.在数据之外,数据库系统还维护着一个用来查找数据的数据结构,这些数据结构指向着特定的数据,可以实现高级的查找算法. 本文 ...

  8. 详解MySQL中EXPLAIN解释命令

    Explain 结果解读与实践   基于 MySQL 5.0.67 ,存储引擎 MyISAM .   注:单独一行的"%%"及"`"表示分隔内容,就象分开“第一 ...

  9. MySQL存储过程详解 mysql 存储过程(二)

    mysql存储过程详解 1.      存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL ...

随机推荐

  1. 详解Unity 4.6新UI的布局

    本文所讲的是Unity 4.6中新加入的uGUI,官方称Unity UI,而不是过去的OnGUI式的旧UI(官方称Legacy GUI). 我曾经在8月份对照4.6 Beta的文档写过一篇笔记学习Un ...

  2. fiddle连接终端测试配置

    第一次做app,对app的数据要进行一些数据抓包和数据分析,知道客户端发送到服务器端的过程和逻辑,通过抓包了解和分析出错,前提要先连接fiddle

  3. IBM中国

    https://www.ibm.com/developerworks/cn/linux/l-memory/

  4. 跑rbgirshick的fast-rcnn代码

    需要安装Caffe.pycaffe cython.python-opencv.easydict matlab(主要用于对PASCALvoc数据集的评估) 为什么要bulid cython.caffe. ...

  5. win10搭建FTP服务器

    下面就给大家讲解Win10搭建FTP服务器的详细操作方法. 1.首先,我们在Cortana中搜索控制面板并进入: 2.在控制面板-程序中,点击启用或关闭Windows功能: 3.在FTP服务器.Web ...

  6. C++ 无限定名称查找

    无限定名称查找 (关键字:懒惰,挑捡,using指令的特殊性) 无限定名称查找实际上就是指没有限定(名称空间和名称空间运算符)名存在的一个名字的出现,其中对于using指令,其内部包含的所有的声明是被 ...

  7. win10如何修改host文件

    首先找到host文件,一般位于:C:\Windows\System32\drivers\etc 之后用记事本打开,直接修改.保存txt文件到桌面. 最后删除后缀名,再粘贴回去就可以了.

  8. 洛谷P2468 [SDOI2010]粟粟的书架(二分答案 前缀和 主席树)

    题意 题目链接 给出一个矩形,每个点都有一些值,每次询问一个子矩阵最少需要拿几个数才能构成给出的值 Sol 这题是真坑啊.. 首先出题人强行把两个题拼到了一起, 对于前$50 \%$的数据,考虑二分答 ...

  9. thinkphp 3.2.3 - Think.class.php 解析

    class Think { public static function start() { // 注册AUTOLOAD方法 spl_autoload_register('Think\Think::a ...

  10. np.newaxis()用法

    这个是liaspace函数 这个是np.newaxis的用法,增加维度,写一个表示增加一维,两个表示增加2维2位置的:号是对a的取值范围,如果把np.newaxis作为第一个参数是对行增加维度,作为第 ...