Mysql 存储过程游标的使用
2017-05-26 08:44
453 查看
存储过程创建:
CREATE PROCEDURE `proc_cursor_test`()
BEGIN
#声明接收变量
declare v_id int(11);
declare v_unit_name varchar(30);
#游标变量
DECLARE done INT DEFAULT FALSE;
DECLARE cur CURSOR FOR SELECT t.id,t.unit_name from t_camp_unit t;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur; #打开游标
read_loop: LOOP
FETCH cur INTO v_id,
v_unit_name;
IF done THEN
LEAVE read_loop;
END IF;
-- 做你想做的事情
select v_unit_name;
END LOOP;
CLOSE cur;#关闭游标
END
注意
1、DECLARE done INT DEFAULT FALSE 不能放在游标变量之后,要放在游标变量之前,否则会报错
1337 - Variable or condition declaration after cursor or handler declaration2、DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE 不能放在游标声明之前,要放在游标变量之后,否则会报错
1338 - Cursor declaration after handler declaration3、一定要加上IF done THEN LEAVE read_loop; END IF;跳出循环,否则会死循环!
CREATE PROCEDURE `proc_cursor_test`()
BEGIN
#声明接收变量
declare v_id int(11);
declare v_unit_name varchar(30);
#游标变量
DECLARE done INT DEFAULT FALSE;
DECLARE cur CURSOR FOR SELECT t.id,t.unit_name from t_camp_unit t;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur; #打开游标
read_loop: LOOP
FETCH cur INTO v_id,
v_unit_name;
IF done THEN
LEAVE read_loop;
END IF;
-- 做你想做的事情
select v_unit_name;
END LOOP;
CLOSE cur;#关闭游标
END
注意
1、DECLARE done INT DEFAULT FALSE 不能放在游标变量之后,要放在游标变量之前,否则会报错
1337 - Variable or condition declaration after cursor or handler declaration2、DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE 不能放在游标声明之前,要放在游标变量之后,否则会报错
1338 - Cursor declaration after handler declaration3、一定要加上IF done THEN LEAVE read_loop; END IF;跳出循环,否则会死循环!
相关文章推荐
- MYSQL存储过程中使用游标的实例
- MySQL中关于行转列的存储过程的写法(使用游标)
- MySql 存储过程使用游标循环插入数据示例
- Mysql存储过程循环内嵌套使用游标示例代码
- 使用游标实现 mysql 存储过程中的循环
- MySql 存储过程使用游标循环插入数据示例
- MySQL 存储过程中使用游标
- 存储过程(1)mysql中游标的使用
- Mysql存储过程优化——使用临时表代替游标
- Mysql存储过程中游标的使用以及错误处理
- mysql 存储过程中 limit之后使用分页变量,传入分页参数. 类似于微博游标分批次获取信息;问号参数类似于c#的string.format;问号占位符
- MySql 存储过程游标使用示例
- [转]mysql 存储过程中使用多游标
- mysql 数据库 简单存储过程游标使用
- MySQL存储过程中使用游标和临时表
- Oracle与MySQL存储过程以及游标使用的区别
- mysql 存储过程中使用多游标
- Mysql存储过程优化——使用临时表代替游标(转)
- MySQL存储过程和函数以及游标使用详解
- MySQL存储过程中使用游标和临时表