MySql使用游標Cursor循環(While)更新數據


#要修改的變量

DECLARE var_ID VARCHAR(50) DEFAULT '';

#需要修改的數據的數量

DECLARE var_UpdateCount INT;

#當前循環次數

DECLARE var_WhileTimes INT;

#定義游標

DECLARE var_Cur CURSOR FOR

SELECT id FROM table_Name;

 

#打開游標

OPEN var_Cur;

#將游標的數據進行賦值

FETCH var_Cur INTO var_ID;

#獲取循環次數

SELECT COUNT(1) FROM table_Name;

#開始循環

cur_While:WHILE (var_WhileTimes <= var_UpdateCount) DO

#更新數據

UPDATE table_Name SET column_Name = var_ID ;

#下一循環

FETCH var_Cur INTO var_ID;

#結束循環

END WHILE;

 

此為非常簡單的一個示例,記錄這部分代碼的原因是:第一次寫MySql的存儲,在利用游標循環更新數據時,如果在循環中,有select語句且查詢結果為null時,如果這時使用的是DECLARE CONTINUE HANDLER的方式的話,就會直接跳出循環了,但是這個方式不會,雖然在循環開始之前,又提前查詢了一下需要循環的次數,但是這么一個簡單的查詢語句一般對效率幾乎沒什么影響,當然,查詢游標結果集的語句本身就特別復雜的話另論;記錄一下這個經驗,在分享的同時,也方便以后參考;剛接觸MySql,不足之處,歡迎指教;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM