前面討論過,在做排行榜資料更新時,比較適合使用儲存過程,原因有以下幾點:
1、生成儲存過程時將要執行的資料庫語句編譯後存入資料庫,避免每次執行都要編譯的麻煩,提高效率。
2、儲存過程可以在需要的時候隨時呼叫簡單的 call basename.procname() 語句即可,方便除錯與測試。
3、可以與程式互動,呼叫返回時表示儲存過程執行完畢,如果成功則可以讓程式放心地拉資料,如果失敗則會返回錯誤原因。
當然,儲存過程的用處遠遠不止於此。儲存過程的編寫基本上有以下格式:
drop procedure if exist update_rank;
delimiter //
create procedure update_rank()
begin
--------------------------
-- do something
--------------------------
end ;
//delimiter ;
其中,delimiter可以指定語句的結束符。在建立儲存過程時可以在括號中指定輸入或輸出變數:in/out varname vartype ,in表示在執行時向資料庫輸入,out則可以將儲存過程之後的變數返回。要執行則呼叫 call update_rank(); 即可。
以下則是乙個實際的例子,雖然有些牽強:
delimiter $$
drop procedure if exist create_accounts$$
create procedure `create_accounts`(in maxcount int , in prefix char(72))
begin
declare i int default maxcount;
while i > 0
doinsert into account set id=i,name=concat(prefix,i);
set i = i - 1;
end while;
end$$
delimiter ;
call create_accounts(1000 , 'test');
這個例子是往賬號表中批量插入測試賬號的,指定了兩個輸入變數,乙個是賬號數量,另乙個則是賬號名的字首。最後在呼叫call之後則會插入1000個test*的賬號名到賬號表。 MYSQL PROCEDURE 測試用例
查詢俱協資訊 drop procedure ifexists get club list delimiter create procedure get club list 頁碼 in i page num int unsigned,一頁數量 in i page size int unsigned b...
等保03 等保測評
差分整改 重點 等級測評 等保專案交付存在的問題 等級保護工作角色分工 等級保護整體流程介紹 各個階段產出的文件 定級備案過程及工作內容 依據定級指南確定目標系統的安全保護等級,同時也是對安全保護等級確定過程的說明。1.目標業務系統描述 系統的基本功能 系統的責任部門 系統的網路結構及部署情況 採取...
sp(SharedPreferences)儲存物件
其實主要是利用物件輸出流 objectoutputstream 將物件轉換為二進位制資料,然後將二進位制資料轉換為字串,再利用sp儲存字串即可。核心 儲存物件 針對複雜型別儲存 物件 注意 要儲存的物件必須序列化 param key param object public void setobjec...