首页 > 代码库 > Mysql 存储过程使用游标

Mysql 存储过程使用游标

-- 完整例子

CREATE PROCEDURE test

BEGIN

-- 定义参数
    DECLARE _id INT;

-- 定义游标
    DECLARE no_more_products INT DEFAULT 0;
    DECLARE RESULT_test CURSOR FOR
SELECT num1 from numtest;

-- 如果NOT FOUND游标
DECLARE  CONTINUE HANDLER FOR NOT FOUND  SET  no_more_products = 1;

-- 打开游标
OPEN RESULT_test;

-- 开始循环
REPEAT

-- 读取每一行
    FETCH RESULT_test INTO _id;

-- 插入语句
    insert into B(id) VALUES(_id);

-- 如果参数等于1跳出
  UNTIL no_more_products = 1

--结束循环
END REPEAT;

--关闭游标
CLOSE RESULT_test;

END

 

调用存储过程:

call test