mysql储存过程以及定时调度清除数据

来源:互联网 发布:淘宝主图可以长着用吗 编辑:程序博客网 时间:2024/04/28 20:19

1。 首先mysql必须使用5.1.X以上的版本,因为只有在该版本之上,mysql才提供 存储过程以及EVENT(事件)支持。

    查看mysql版本可以使用命令:SELECT VERSION(); 进行查看。

2。 分别使用  SHOW VARIABLES LIKE 'performance_schema';  以及  SHOW VARIABLES LIKE 'event_scheduler';  命令,查看

    这俩个数值的状态,均需要 为 NO 时,才能正常使用。默认状态为 OFF,请自行上网查询命令,修改其状态为 NO 即可。

   eg:  SET GLOBAL event_scheduler=1  修改事件命令。

3.   直接使用SQLYog等客户端连接工作,执行如下命令创建对象。

      创建一个存储过程的例子命令,如下:

DELIMITER $$CREATE    /*[DEFINER = { user | CURRENT_USER }]*/    PROCEDURE `test`.`cleanCaptcha`()    /*LANGUAGE SQL    | [NOT] DETERMINISTIC    | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }    | SQL SECURITY { DEFINER | INVOKER }    | COMMENT 'string'*/    BEGINDELETE FROM ANNOUNCEMENT WHERE TIMESTAMPDIFF(MINUTE,CREATE_TIME,NOW())>3;    END$$DELIMITER ;

        创建一个event事件命令,如下:

-- 创建事件 event:event_nameCREATE EVENT cleanCaptchaEvent    -- 该事件从2013-01-23 00:30:00开始每5分钟执行一次    ON SCHEDULE EVERY 5 MINUTE STARTS NOW()    ON COMPLETION PRESERVE     -- 调用上面写的 PROCEDURE  DO CALL cleanCaptcha();//DELIMITER ;


4。 使用 SELECT * FROM information_schema.`EVENTS` 命令可以查看具体event执行的相关信息。

5。 以上方式操作后,就能实现mysql数据库自行定时调用存储过程。

 





















0 0
原创粉丝点击