您的位置:首页 > 数据库 > MySQL

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

2014-06-30 14:33 399 查看
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'*/
BEGIN
DELETE FROM ANNOUNCEMENT WHERE TIMESTAMPDIFF(MINUTE,CREATE_TIME,NOW())>3;
END$$

DELIMITER ;


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

-- 创建事件 event:event_name
CREATE 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数据库自行定时调用存储过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: