ITPub博客

首页 > 数据库 > MySQL > mysql处理递归的一个例子

mysql处理递归的一个例子

原创 MySQL 作者:rainbowbridg 时间:2012-08-02 14:59:58 0 删除 编辑

只是一个例子,简单记录一下!


delimiter //
drop procedure if exists getChildModel //
CREATE PROCEDURE getChildModel(IN startId INT,in inAdmin int)
BEGIN

DECLARE _id varchar(4) DEFAULT '0';
DECLARE _path VARCHAR(2000);
DECLARE _Last bigint DEFAULT 0;

CREATE TEMPORARY TABLE IF NOT EXISTS temp_table (
id varchar(4) NOT NULL ,
path varchar(2000) default NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB TYPE = HEAP;

CREATE TABLE IF NOT EXISTS pp_table (
topid int not null,
id varchar(4) NOT NULL ,
path varchar(2000) default NULL,
PRIMARY KEY (topid,id)
) ENGINE=InnoDB;

delete from temp_table;

insert into temp_table(id, path)
select startId, model_parent_Id from gweb_model src where model_aiid = startId;


set _id = startId;
set _path = startId;

WHILE ( _id <> '0') DO
insert into temp_table(id, path)
select model_aiid, model_parent_Id
from gweb_model src where src.model_parent_Id=_id ;
set _last = _id;
set _id = 0;
select id, path into _id, _path from temp_table where id>_last limit 1;
END WHILE;

insert into pp_table select startId,id,path from temp_table;

insert into dzy_permission_all select inAdmin,id from temp_table;

truncate table temp_table;

END
//

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7916042/viewspace-1059067/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
  • 博文量
    237
  • 访问量
    1586321