<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      MySQL游標(biāo)簡介【8】

      使用MySQL游標(biāo)

      首先,必須使用DECLARE語句聲明游標(biāo):

      DECLARE cursor_name CURSOR FOR SELECT_statement;

      游標(biāo)聲明必須在變量聲明之后。如果在變量聲明之前聲明游標(biāo),MySQL將會發(fā)出一個錯誤。游標(biāo)必須始終與SELECT語句相關(guān)聯(lián)。

      接下來,使用OPEN語句打開游標(biāo)。OPEN語句初始化游標(biāo)的結(jié)果集,因此您必須在從結(jié)果集中提取行之前調(diào)用OPEN語句。

      OPEN cursor_name;

      然后,使用FETCH語句來檢索光標(biāo)指向的下一行,并將光標(biāo)移動到結(jié)果集中的下一行。

      FETCH cursor_name INTO variables list;

      之后,可以檢查是否有任何行記錄可用,然后再提取它。

      最后,調(diào)用CLOSE語句來停用光標(biāo)并釋放與之關(guān)聯(lián)的內(nèi)存,如下所示:

      CLOSE cursor_name;

      當(dāng)光標(biāo)不再使用時,應(yīng)該關(guān)閉它。

      當(dāng)使用MySQL游標(biāo)時,還必須聲明一個NOT FOUND處理程序來處理當(dāng)游標(biāo)找不到任何行時的情況。 因?yàn)槊看握{(diào)用FETCH語句時,游標(biāo)會嘗試讀取結(jié)果集中的下一行。 當(dāng)光標(biāo)到達(dá)結(jié)果集的末尾時,它將無法獲得數(shù)據(jù),并且會產(chǎn)生一個條件。 處理程序用于處理這種情況。

      要聲明一個NOT FOUND處理程序,參考以下語法:

      DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;

      finished是一個變量,指示光標(biāo)到達(dá)結(jié)果集的結(jié)尾。請注意,處理程序聲明必須出現(xiàn)在存儲過程中的變量和游標(biāo)聲明之后。

      MySQL游標(biāo)示例

      為了更好地演示,我們將開發(fā)一個存儲過程,來獲取MySQL示例數(shù)據(jù)庫(yiibaidb)employees表中所有員工的電子郵件列表。

      首先,聲明一些變量,一個用于循環(huán)員工電子郵件的游標(biāo)和一個NOT FOUND處理程序:

      DECLARE finished INTEGER DEFAULT 0;
      DECLARE email varchar(255) DEFAULT "";
      
      -- declare cursor for employee email
      DEClARE email_cursor CURSOR FOR 
       SELECT email FROM employees;
      
      -- declare NOT FOUND handler
      DECLARE CONTINUE HANDLER 
      FOR NOT FOUND SET finished = 1;

      接下來,使用OPEN語句打開email_cursor

      OPEN email_cursor;
      然后,迭代電子郵件列表,并使用分隔符(;)連接每個電子郵件:
      get_email: LOOP
       FETCH email_cursor INTO v_email;
       IF v_finished = 1 THEN 
       LEAVE get_email;
       END IF;
       -- build email list
       SET email_list = CONCAT(v_email,";",email_list);
      END LOOP get_email;

      之后,在循環(huán)中,使用v_finished變量來檢查列表中是否有任何電子郵件來終止循環(huán)。

      最后,使用CLOSE語句關(guān)閉游標(biāo):

      CLOSE email_cursor;

      build_email_list存儲過程所有代碼如下:

      DELIMITER $$
      
      CREATE PROCEDURE build_email_list (INOUT email_list varchar(4000))
      BEGIN
      
       DECLARE v_finished INTEGER DEFAULT 0;
       DECLARE v_email varchar(100) DEFAULT "";
      
       -- declare cursor for employee email
       DEClARE email_cursor CURSOR FOR 
       SELECT email FROM employees;
      
       -- declare NOT FOUND handler
       DECLARE CONTINUE HANDLER 
              FOR NOT FOUND SET v_finished = 1;
      
       OPEN email_cursor;
      
       get_email: LOOP
      
       FETCH email_cursor INTO v_email;
      
       IF v_finished = 1 THEN 
       LEAVE get_email;
       END IF;
      
       -- build email list
       SET email_list = CONCAT(v_email,";",email_list);
      
       END LOOP get_email;
      
       CLOSE email_cursor;
      
      END$$
      
      DELIMITER ;

      可以使用以下腳本測試build_email_list存儲過程:

      SET @email_list = "";
      CALL build_email_list(@email_list);
      SELECT @email_list;
      posted @ 2020-05-25 18:31  Yuezc  Views(228)  Comments(0)    收藏  舉報
      主站蜘蛛池模板: 蜜臀av午夜精品福利| 亚洲国产高清av网站| 亚洲AV日韩AV综合在线观看| 99亚洲男女激情在线观看| 无码专区—va亚洲v天堂麻豆| 黑人玩弄人妻中文在线| 国产极品精品自在线不卡| 亚洲a毛片| 精品亚洲国产成人av| 国产在线无遮挡免费观看| 人人人澡人人肉久久精品| 久爱www人成免费网站| 国产av中文字幕精品| 日日碰狠狠躁久久躁96avv| 91在线国内在线播放老师| 97视频精品全国免费观看| 欧美日韩人成综合在线播放| 夜夜躁日日躁狠狠久久av| 亚洲精品美女久久7777777| 亚洲av乱码久久亚洲精品| 亚洲国产午夜精品理论片妓女| 欧美人与禽2o2o性论交| 国产成人AV男人的天堂| 中文人妻| 色吊丝一区二区中文字幕| 久久天堂综合亚洲伊人HD妓女 | 午夜福利院一区二区三区| 亚洲精品国产福利一区二区 | 人妻饥渴偷公乱中文字幕| 免费无码又黄又爽又刺激| 精品人妻一区二区三区蜜臀| 成人网站免费观看永久视频下载| 桃花岛亚洲成在人线AV| 国产美女裸身网站免费观看视频| 日韩无码视频网站| 小污女小欲女导航| 国产精品一区二区三区性色| 久久a级片| 体态丰腴的微胖熟女的特征| 国产在线精品中文字幕| 中文字幕有码日韩精品|