MySql使用遊標Cursor迴圈(While)更新資料

來源:互聯網
上載者:User

標籤:

#要修改的變數

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,不足之處,歡迎指教;

MySql使用遊標Cursor迴圈(While)更新資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.