91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用mysql游標

發布時間:2020-08-04 13:49:12 來源:億速云 閱讀:513 作者:小豬 欄目:MySQL數據庫

這篇文章主要為大家展示了如何使用mysql游標,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

什么是游標:

  • 如果你前面看過mysql函數,會發現無法使用返回多行結果的語句。但如果你又確實想要使用時,就需要使用到游標,游標可以幫你選擇出某個結果(這樣就可以做到返回單個結果)。
  • 另外,使用游標也可以輕易的取出在檢索出來的行中前進或后退一行或多行的結果。
  • 游標可以遍歷返回的多行結果。

補充:

  • Mysql中游標只適用于存儲過程以及函數。

創建游標:

  • 語法:
    • 1.定義游標:declare 游標名 cursor for select語句;
    • 2.打開游標:open 游標名;
    • 獲取結果:fetch 游標名 into 變量名[,變量名];
    • 關閉游標:close 游標名;
      create procedure p1()
      begin
        declare id int;
        declare name varchar(15);
        -- 聲明游標
        declare mc cursor for select * from class;
        -- 打開游標
        open mc;
        -- 獲取結果
        fetch mc into id,name;
        -- 這里是為了顯示獲取結果
        select id,name;
        -- 關閉游標
        close mc;
        
      end;
         
      create procedure p2()
      begin
        declare id int;
        declare name varchar(15);
        -- 聲明游標
        declare mc cursor for select * from class;
        -- 打開游標
        open mc;
        -- 獲取結果
        loop -- 循環,將表的內容都轉移到class2中
        fetch mc into id,name;
        -- 這里是為了顯示獲取結果
        insert into class2 values(id,name);
        -- 關閉游標
        end loop;
        close mc;
        
      end;
         

使用游標:

  • 游標每一次fetch都是獲取一行結果,可以使用變量來獲取fetch到的每一列的值
    create procedure p2()
    begin
      declare id int;
      declare name varchar(15);
      -- 聲明游標
      declare mc cursor for select * from class;
      -- 打開游標
      open mc;
      -- 獲取結果
      loop -- 循環,將表的內容都轉移到class2中
      fetch mc into id,name;
      -- 這里是為了顯示獲取結果
      insert into class2 values(id,name);
      -- 關閉游標
      end loop;
      close mc;
      
    end;
     

上面的代碼會有一個報錯如何使用mysql游標,不斷循環的話,始終會達到表的末尾,到了末尾就無法繼續fetch,一般來說都要避免報錯,到了末尾前會有一個mysql定義的

create procedure p3()
begin
  declare id int;
  declare name varchar(15);
  declare flag int default 0;
  -- 聲明游標
  declare mc cursor for select * from class;
  declare continue handler for not found set flag = 1;
  -- 打開游標
  open mc;
  -- 獲取結果
  l2:loop 
  
  fetch mc into id,name;
  if flag=1 then -- 當無法fetch會觸發handler continue
    leave l2;
  end if;
  -- 這里是為了顯示獲取結果
  insert into class2 values(id,name);
  -- 關閉游標
  end loop;
  close mc;
  
end;

call p3();-- 不報錯
select * from class2;

以上就是關于如何使用mysql游標的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

运城市| 合作市| 姚安县| 新民市| 陇南市| 莒南县| 南投市| 东安县| 元江| 江西省| 内丘县| 渭南市| 武乡县| 永福县| 张家口市| 小金县| 凤山市| 尤溪县| 炎陵县| 吉木萨尔县| 铜陵市| 通山县| 安丘市| 阳高县| 大同县| 乐亭县| 家居| 清水河县| 游戏| 本溪| 宜君县| 邯郸市| 绵阳市| 仪征市| 阿克| 成武县| 河间市| 西吉县| 同心县| 海盐县| 桐柏县|