遊標:指針
selelect 字段名 into 變量名 from 表名;
注意: into 關鍵字後的變量要求先聲明;這句語法只能出現在存儲過程和觸發器中,不能單獨使用;字段的數量與類型,要和變量一致;只能針對一行;需要返回一個標題值。
如果搜索的結果集爲多條,那麼我們就要用到遊標了,要移動指針。
用遊標我們需要以下幾步:
1) 創建遊標
declare 遊標名稱 cursor for
select 字段名 from 表名 where 條件
注意:聲明完成後並不會執行。
2) 打開遊標
open 遊標名稱
3) 獲取記錄
fetch 遊標名稱 into 變量名;
注意:這裏的變量名也是需要先聲明的,而且要與前面select語句的字段名保持一致。
4) 關閉遊標
close 遊標名稱;
現在知道了怎麼用遊標,但如果結果集是多條的話,直接使用,結果只是一條,是不會全部顯示的,所以我們還要用循環語句。關於循環語句,我已經在我的上一篇博文裏寫到了。
我們現在在存儲過程中加入了循環之後,又會出現一個問題,那就是循環的次數無法確定,我們就需要利用它的異常提示信息
語法:
declare exit handler for SQLSTATE 信息 執行的動作;
declare continue handler for SQLSTATE 信息 執行的動作;
注意:
執行順序(聲明的位置沒有要求,建議在開頭。當錯誤出現的時候被執行,如果是exit類型的在終止整個存儲過程的執行;如果是continue類型的則從錯誤
出現的位置繼續);