MySql存儲(chǔ)過程循環(huán)注意事項(xiàng)

循環(huán)的方式


  • while
  • repeat
  • loop
    有一種goto形式區(qū)塊跳轉(zhuǎn)也可以進(jìn)行循環(huán),不過不推薦

while

  WHILE (條件) DO
     ...
  END WHILE;

repeat

  REPEAT
    ...
  UNTIL 條件
  END REPEAT;

loop

  循環(huán)名: LOOP
    IF 條件 THEN
      LEAVE 循環(huán)名;
    END IF;
    ...
  END LOOP;

重點(diǎn)

  1. while的循環(huán)是先判斷循環(huán)條件,再執(zhí)行循環(huán)體。repeat是直接執(zhí)行循環(huán)體,結(jié)束時(shí)再通關(guān)UNTIL判斷循環(huán)條件。loop就相對(duì)簡單了,你可以將if條件安放在循環(huán)體的任意位置。

DECLARE 游標(biāo) CURSOR FOR SELECT 字段 FROM 表;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flagtag = 1;
OPEN 游標(biāo)
循環(huán)
循環(huán)體(FETCH * INTO *)
CLOSE 游標(biāo);

循環(huán)通常會(huì)在游標(biāo)中出現(xiàn),在執(zhí)行游標(biāo)循環(huán)時(shí),通常是通過flagtag = 1;這樣的條件來判斷遍歷結(jié)束。使用repeat時(shí),如果不提前判斷flagtag,將會(huì)多執(zhí)行一次,所以執(zhí)行repeat循環(huán)時(shí),需要在這之前進(jìn)行循環(huán)條件判斷。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 之前在項(xiàng)目上遇到一個(gè)問題,實(shí)施人員在數(shù)據(jù)庫中建了許多臨時(shí)的測(cè)試數(shù)據(jù),在正式客戶環(huán)境中是要?jiǎng)h掉的,但是產(chǎn)品頁面上沒有...
    Walkerc閱讀 2,847評(píng)論 0 1
  • 1.PLSQL入門 Oracle數(shù)據(jù)庫對(duì)SQL進(jìn)行了擴(kuò)展,然后加入了一些編程語言的特點(diǎn),可以對(duì)SQL的執(zhí)行過程進(jìn)行...
    隨手點(diǎn)燈閱讀 689評(píng)論 0 8
  • 創(chuàng)建游標(biāo)首先在MySql中創(chuàng)建一張數(shù)據(jù)表: CREATE TABLE IF NOT EXISTS store (i...
    聽說我很強(qiáng)閱讀 1,270評(píng)論 0 1
  • 轉(zhuǎn)載自這里 存儲(chǔ)過程簡介 我們常用的操作數(shù)據(jù)庫語言SQL語句在執(zhí)行的時(shí)候需要要先編譯,然后執(zhí)行,而存儲(chǔ)過程(Sto...
    杜七閱讀 2,473評(píng)論 4 27
  • 每天一句:在你想要放棄的那一刻,想想為什么當(dāng)初走到了這里 —— 科比 一、數(shù)組 splice()刪除、替換、添加 ...
    EndEvent閱讀 378評(píng)論 0 0

友情鏈接更多精彩內(nèi)容