mysql儲存過程以及定時排程清除資料
阿新 • • 發佈:2019-02-18
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資料庫自行定時呼叫儲存過程。