linewman

转载地址:http://blog.jinshui8.com/blog/view/id-37.html

在储过程中循环查询结果需要使用到CURSOR(光标)

sql Code
  1. CREATE PROCEDURE curdemo()
    
  2. BEGIN
    
  3.   DECLARE done INT DEFAULT 0;
    
  4.   DECLARE a INT;
    
  5.   DECLARE b CHAR(225);
    
  6.   DECLARE cur CURSOR FOR SELECT id,title FROM test.t1; -- 这个语句声明一个光标保存记录集。也可以在子程序中定义多个光标,但是一个块中的每一个光标必须有唯一的名字
    
  7.   DECLARE CONTINUE HANDLER FOR SQLSTATE \'02000\' SET done = 1;
    
  8.  
  9.   OPEN cur;
    
  10.  
  11.   REPEAT -- 循环
    
  12.     FETCH cur INTO a, b;-- 这个语句用指定的打开光标读取下一行(如果有下一行的话),并且前进光标指针
    
  13.     IF NOT done THEN
    
  14.        INSERT INTO test.t2 VALUES (a,b);
    
  15.     END IF;
    
  16.   UNTIL done END REPEAT;-- 结束循环
    
  17.  
  18.   CLOSE cur;-- 这个语句关闭先前打开的光标。
    
  19. END
    
Parsed in 0.011 seconds at 65.03 KB/s, using GeSHi 1.0.8.11

本文为原创,如需转载请注明出处和本文链接!

分类:

技术点:

相关文章: