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. +----+

相关文章
相关标签/搜索