Posted on 2008-06-08 16:33
G_G 阅读(2771)
评论(2) 编辑 收藏 所属分类:
Database
就用数据
数据库表地址数据(中国地区)来说吧
存储过程:DELIMITER //
drop procedure if exists useCursor //
create temporary table if not exists aop.tmp_table(data bigint(20))//
//建立存储过程
CREATE PROCEDURE useCursor(iid bigint(20))
BEGIN
//局部变量定义
declare tid bigint(20) default -1 ;
//游标定义
declare cur1 CURSOR FOR select id from aop.location where fid=iid ;
//游标介绍定义
declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tid = null;
//开游标
OPEN cur1;
FETCH cur1 INTO tid;
WHILE ( tid is not null )
DO
insert into aop.tmp_table values(tid);
//树形结构数据递归收集到建立的临时表中
call useCursor(tid);
FETCH cur1 INTO tid ;
END WHILE;
END;//
DELIMITER ;
//查询开始 ,运行是成功的,但用时有10多秒之多,才几百条数据;
//望那个大牛 帮帮解决下时间问题!
call useCursor(1);
select * from tmp_table ;
drop temporary table if exists aop.tmp_table ;
结果:
| 187 |
| 188 |
| 189 |
| 190 |
| 191 |
| 192 |
| 193 |
| 194 |
| 195 |
| 196 |
| 197 |
| 198 |
| 199 |
| 200 |
| 201 |
| 202 |
| 203 |
| 204 |
| 205 |
| 206 |
| 207 |
| 208 |
| 209 |
.