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

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

2015-07-12 08:53 706 查看
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等客户端连接工作,执行如下命令创建对象。

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

[java] view
plaincopy





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事件命令,如下:

[java] view
plaincopy





-- 创建事件 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数据库自行定时调用存储过程。

1. [代码]查询数据库中的存储过程

?

2. [代码]查看存储过程或函数的创建代码

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: