Mysql使用儲存過程和遊標
CREATE PROCEDURE PROC_Modify_YID() BEGIN DECLARE mYID INT; DECLARE mFlag INT; DECLARE NewYID INT; -- 遍歷資料結束標誌 DECLARE done INT DEFAULT FALSE; declare auth_cur cursor forSELECT YID,Flag FROM cradle_camera_param; -- 開啟遊標 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; -- 繫結控制變數到遊標,遊標迴圈結束自動轉true open auth_cur; -- 開始迴圈 myLoop: LOOP -- 開始迴圈體,myLoop為自定義迴圈名,結束迴圈時用到 -- 提取遊標裡的資料,這裡只有一個,多個的話也一樣; FETCH auth_cur INTO mYID,mFlag; -- 宣告結束的時候 IF done THEN -- 判斷是否繼續迴圈 LEAVE myLoop; -- 結束迴圈 END IF; set NewYID = mYID + mFlag; SELECT mYID,mFlag,NewYID; update cradle_camera_param set YID = NewYID WHERE Flag=mFlag; COMMIT; -- 提交事務 END LOOP myLoop; -- 結束自定義迴圈體 close auth_cur; END CALL PROC_Modify_YID();