写了一个简单的对多游标控制的存储过程
2008-01-16 11:15
483 查看
写了一个简单的对多游标控制的存储过程。
此例是示范游标的具体使用方法。
不过生产过程中不推荐使用游标。因为完全可以用INTO 变量语句和循环来代替游标。
1、SP 代码:
2、测试结果:
本文出自 “上帝,咱们不见不散!” 博客,转载请与作者联系!
此例是示范游标的具体使用方法。
不过生产过程中不推荐使用游标。因为完全可以用INTO 变量语句和循环来代替游标。
1、SP 代码:
DELIMITER $$ DROP PROCEDURE IF EXISTS `test2`.`sp_cur_demo`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_cur_demo`() BEGIN -- Variants declare DECLARE i INT DEFAULT 0; DECLARE cnt INT DEFAULT 0; DECLARE a,b INT; DECLARE c CHAR(1); -- Define cursor -- Notice:Cursor's declaration must be after ordinary variant. DECLARE cur1 CURSOR FOR SELECT a1 from t1; DECLARE cur2 CURSOR FOR SELECT a2 from t1; DECLARE cur3 CURSOR FOR SELECT a3 from t1; -- Fetch total number of the table. SELECT count(1) FROM t1 INTO cnt; DROP TABLE tmp; -- Create a temporary table to store the results. CREATE TEMPORARY TABLE IF NOT EXISTS tmp(cur_c1 int, cur_c2 int,cur_c3 char(1)); OPEN cur1; OPEN cur2; OPEN cur3; -- Begin fetch data into a new temporary table. WHILE i < cnt DO FETCH cur1 INTO a; FETCH cur2 INTO b; FETCH cur3 INTO c; INSERT INTO tmp SELECT a,b,c; SET i = i + 1; END WHILE; CLOSE cur1; CLOSE cur2; CLOSE cur3; END$$ DELIMITER ; |
select * from t1; call sp_cur_demo(); select * from tmp; query result(7 records)
query result(7 records)
|
相关文章推荐
- 一个简单的带游标的存储过程
- Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环
- 一个简单的SQL游标示例的存储过程
- 如何创建一个简单的JAVA存储过程?[转贴]
- 一个简单的存储过程及扩展
- 一个调试简单的存储过程的SQL语句。
- 一个SQL存储过程面试题(比较简单)
- mysql 一个带游标的存储过程例子
- 一个简单例子讲明mysql存储过程是什么
- 一个简单的oracle分页存储过程的实现和调用
- 一个简单的存储过程使用事务的例子
- 一个简单的存储过程~
- mysql的存储过程,存储函数,游标,流程控制
- 如何删除一个表中重复的记录? 、、游标,存储过程的使用
- MySQL 存储过程游标的简单用法
- SQL2000 存储过程中实现递归的一个简单例子
- 一个简单的存储过程
- 自己写的存储过程要记住一:(一个插入语句游标遍历数据替换关键字的过程)
- 简单存储过程和游标使用案例