應用場景:
有兩張表,學生表和對應的各科成績表。
學生表student
字段:id int
, name varchar(20)
數值:
1 a
2
b 成績表score
字段:id int
studentid int
subjectid int
score int
數值:
1
1
1
80 2
1
2 90
3
1
3 100
4
2
1
60 5 2
2
70用儲存過程來通過名字獲取對應學生的成績最大值的科目名稱。本例的邏輯比較簡單,用一句sql就可以實現,這裡只是演示儲存過程的基本語法。
建立儲存過程:
delimiter //
create procedure getmaxscore(in `xname` varchar(20))
begin
declare max_score int default 0;
declare cur_score int;
declare b int default 0;
declare cur_1 cursor for select score from score where studentid=(select studentid from student where name = xname);
declare continue handler for not found set b = 1;
open cur_1;
fetch cur_1 into cur_score;
while b<>1 do
if (cur_score > max_score) then
set max_score = cur_score;
end if;
fetch cur_1 into cur_score;
end while;
close cur_1;
select max_score;
end呼叫儲存過程:
call getmaxdataprivilege('a')
輸出結果:
100
MySQL儲存過程例項
9.3 mysql儲存過程 mysql 5.0以後的版本開始支援儲存過程,儲存過程具有一致性 高效性 安全性和體系結構等特點,本節將通過具體的例項講解php是如何操縱mysql儲存過程的。例項261 儲存過程的建立 這是乙個建立儲存過程的例項 錄影位置 光碟 mingrisoft 09 261 例項...
MYSQL儲存過程例項
2 建立租戶公升級儲存過程 drop procedure if exists helpdesk cater upgradetenantdb delimiter create procedure helpdesk cater upgradetenantdb begin declare done int...
mysql儲存過程例項
儲存過程的作用 第一 儲存過程因為sql語句已經預編繹過了,因此執行的速度比較快。第二 儲存過程可以接受引數 輸出引數 返回單個或多個結果集以及返回值。可以向程式返回錯誤原因。第三 儲存過程執行比較穩定,不會有太多的錯誤。只要一次成功,以後都會按這個程式執行。第四 儲存過程主要是在伺服器上執行,減少...