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

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 plain copy 在CODE上查看代码片 派生到我的代码片
  1. DELIMITER $$  
  2.   
  3. CREATE  
  4.     /*[DEFINER = { user | CURRENT_USER }]*/  
  5.     PROCEDURE `test`.`cleanCaptcha`()  
  6.     /*LANGUAGE SQL 
  7.     | [NOT] DETERMINISTIC 
  8.     | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } 
  9.     | SQL SECURITY { DEFINER | INVOKER } 
  10.     | COMMENT 'string'*/  
  11.     BEGIN  
  12.     DELETE FROM ANNOUNCEMENT WHERE TIMESTAMPDIFF(MINUTE,CREATE_TIME,NOW())>3;  
  13.     END$$  
  14.   
  15. DELIMITER ;  

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

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. -- 创建事件 event:event_name  
  2. CREATE EVENT cleanCaptchaEvent  
  3.     -- 该事件从2013-01-23 00:30:00开始每5分钟执行一次  
  4.     ON SCHEDULE EVERY 5 MINUTE STARTS NOW()  
  5.     ON COMPLETION PRESERVE  
  6.       
  7.  -- 调用上面写的 PROCEDURE    
  8. DO CALL cleanCaptcha();  
  9. //  
  10. DELIMITER ;  


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

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






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

?
1
2
3
select ` name ` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE'
 
show procedure status;

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

?
1
2
show create procedure proc_name;
show create function func_name;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值