mysql 游标的使用

来源:互联网 发布:开单软件哪个好 编辑:程序博客网 时间:2024/05/23 18:45
  1. MySQL游标的使用  
  2.   
  3. A simple cursor of mysql  
  4.   
  5. step1:  
  6. 新建表tb_test;  
  7.   
  8. create table tb_test(  
  9.     id int  
  10. );  
  11.   
  12. insert into tb_test values ('1');  
  13. insert into tb_test values ('2');  
  14. insert into tb_test values ('3');  
  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. +----+