MySQL遊標的使用

  1. MySQL遊標的使用  mysql

  2.  

  3. A simple cursor of mysql  sql

  4.  

  5. step1:  oop

  6. 新建表tb_test;  fetch

  7.  

  8. create table tb_test(  code

  9.    id int  it

  10. );  table

  11.  

  12. insert into tb_test values ('1');  class

  13. insert into tb_test values ('2');  test

  14. insert into tb_test values ('3');  select

  15.  

  16. step2:  

  17. 聲明存儲過程sp_test;  

  18.  

  19. delimiter $$    

  20. create procedure sp_test()    

  21. BEGIN    

  22.    declare tmp int default 0;  

  23.    declare sum int default 0;  

  24.    declare done int default -1;  

  25.      

  26.    /* 聲明遊標 */  

  27.    declare myCursor cursor for select id from tb_test;  

  28.      

  29.    /* 當遊標到達尾部時,mysql自動設置done=1 */    

  30.    declare continue handler for not found set done=1;  

  31.      

  32.    /* 打開遊標 */  

  33.    open myCursor;  

  34.      

  35.    /* 循環開始 */  

  36.    myLoop: LOOP  

  37.      

  38.        /* 移動遊標並賦值 */  

  39.        fetch myCursor into tmp;  

  40.          

  41.        if done = 1 then  

  42.        leave myLoop;  

  43.        end if;  

  44.          

  45.        /* do something */  

  46.        set sum = sum + tmp;  

  47.      

  48.    /* 循環結束 */  

  49.    end loop myLoop;  

  50.      

  51.    insert into tb_test values(sum);  

  52.      

  53.    /* 關閉遊標 */  

  54.    close myCursor;  

  55. END    

  56. $$    

  57. delimiter ;  

  58.  

  59. step3:  

  60. call sp_test();  

  61. select * from tb_test();  

  62. +----+    

  63. | id |    

  64. +----+    

  65. |  1 |    

  66. |  2 |    

  67. |  3 |  

  68. |  6 |    

  69. +----+

相關文章
相關標籤/搜索