MySQL 遊標管理

來源:互聯網
上載者:User

標籤:mysql   遊標   cursor   

  在理解了Oracle上的遊標之後,再去翻MySQL中關於遊標的說明,發現這塊講得比較簡單,用一個例子來說明就能理解MySQL遊標的使用方法。

遊標的使用分為4步:分別是開啟遊標(open)、遊標迴圈(loop,leave)、提取資料(fetch)、關閉遊標(close)。

  這裡使用了Mysql官方文檔(5.5)中的例子:


CREATE PROCEDURE curdemo()

BEGIN

  DECLARE done INT DEFAULT FALSE;

  DECLARE a CHAR(16);

  DECLARE b, c INT;

  DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;#聲明遊標

  DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;

  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;#遊標中找不到值時跳出


  OPEN cur1;

  OPEN cur2;


  read_loop: LOOP

    FETCH cur1 INTO a, b;

    FETCH cur2 INTO c;

    IF done THEN

      LEAVE read_loop;#這裡相當於exit when cursor%notfound

    END IF;

    IF b < c THEN

      INSERT INTO test.t3 VALUES (a,b);

    ELSE

      INSERT INTO test.t3 VALUES (a,c);

    END IF;

  END LOOP;


  CLOSE cur1;#關閉遊標

  CLOSE cur2;

END;


本文出自 “三國冷笑話” 部落格,請務必保留此出處http://myhwj.blog.51cto.com/9763975/1870898

MySQL 遊標管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.