存儲例程是存儲在數據庫服務器上的一組sql語句,這些語句經過在查詢中調用指定的名稱來執行。mysql
存儲過程是存儲在數據庫中的一組SQL語句sql
存儲過程是mysql中定義的方法數據庫
能夠經過調用方法名稱來調用更改的方法服務器
存儲過程關聯既是數據庫又是模式學習
存儲過程的結構3d
DROP PROCEDURE IF EXISTS $ {proceName} ;分隔符//建立過程$ {proceName} ()( [$ {參數類型}] $ {參數名稱} $ {參數類型})BEGINblog
$ {proceBody} END //get
若是你在學習C/C++的過程當中遇到了問題,能夠來加入小編的企鵝圈問小編哦~小編很熱情的(●’◡’●)io
DELIMITER ;#執行Proc()存儲過程CALL $ {proceName}();event
如何使用
#定義一個簡單的存儲過程#首先肯定是否有一個Proc()存儲過程,而後滴落DROP PROCEDURE IF EXISTS PROC;#建立Proc()存儲過程/ *方法說明-@author:$ {Author}-@date:$ {Time}-@param:int-$ {參數名稱}-參數說明-@return:具體信息* /分隔符//CREATE PROCEDURE PROC()
BEGIN SELECT * FROM用戶; 結束//定界符;#執行Proc()存儲過程調用Proc();
請注意,「 DELIMITER //」語句的目的是將MYSQL的終止符設置爲//,由於MYSQL的默認語句終止符是分號。爲避免與存儲過程聯繫,
衝突的SQL語句終止符須要DELIMITER更改存儲過程的終止符並以END //結束存儲過程。
定義存儲過程後,將使用DelIMITER;恢復默認終止符。DELIMITER也能夠將其餘符號指定爲終止符!
存儲過程的管理
#查看全部存儲過程信息顯示程序狀態;#刪除存儲過程刪除過程$ {procedureName} ;#查看存儲過程的內容信息顯示建立過程$ {procedureName};
定時任務管理
#定時任務是否開啓顯示變量,例如'%event_sche%';#打開計時器任務(開始生效)#修改Profile / etc / my.conf
event_scheduler = ON #打開計時器任務(從新啓動失敗)SET GLOBAL event_scheduler = 1 ;#關閉計時器任務(從新啓動失敗)SET GLOBAL event_scheduler = 0 ;
#查看全部定時任務信息演出活動;#定時任務結構
#建立一個定時任務(例如)創造學習EVENT IF NOT EXISTS $ {eventName的} ON每隔SCHEDULE 30第二個
#Execute每30秒開竣工PRESERVE #Eve在定時器任務後,設置爲禁用完成後,若是維護的是以前添加是不刪除DO CALL $ {procedureName}();
#啓動一個定時任務ALTER EVENT $ {evenName} ENABLE; #關閉定時任務ALTER EVENT $ {evenName} DISABLE; #刪除定時任務DROP EVENT IF EXISTS $ {evenName} ;
簡單的例子
每一個星期一執行存儲過程
#存儲過程(肯定今天是不是星期一)DELIMITER // CREATE PROCEDURE p_clear_author_rank_integral ()BEGIN DECLARE weed_index INT DEFAULT 0; SET weed_index = dayofweek(now());
若是weed_index = 2而後
更新用戶集rank_integral = 0 ,其中author.id!= 0 ;
結束IF ;結束//定界符;#定時任務(天天)蠟膏EVENT IF NOT EXISTS e_clear_author_rank_integral
ON SCHEDULE每1天ON COMPLETION PRESERVE
DO CALL p_clear_author_rank_integral();