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等客戶端連接工作,執行如下命令創建對象。

      創建一個存儲過程的例子命令,如下:

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數據庫自行定時調用存儲過程。

 





















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章