欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入 首先看一个存储过程,这个存储过程是为了构造数据使用的。当然贴出来的存储过程简化了一些不必要的表结构。 create procedure modifyrootentry() begin declare done int default false; declare u
欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入
首先看一个存储过程,这个存储过程是为了构造数据使用的。当然贴出来的存储过程简化了一些不必要的表结构。
create procedure modifyrootentry()
begin
declare done int default false;
declare userid int;
declare useriditer cursor for select distinct user_id from entries;
open useriditer;
read_loop: loop
fetch useriditer into userid;
if done then
leave read_loop;
end if;
insert into entries (id, name, user_id, parent_id) values(0, 'root_parent', userid, 0);
update entries set parent_id=0 where user_id=userid and name='file_root' and parent_id is null;
end loop;
close useriditer;
end;
create procedure modifyrootentry()
begin
declare done int default false;
declare userid int;
declare useriditer cursor for select distinct user_id from entries;
start transaction; // here !
open useriditer;
read_loop: loop
fetch useriditer into userid;
if done then
leave read_loop;
end if;
insert into entries (id, name, user_id, parent_id) values(0, 'root_parent', userid, 0);
update entries set parent_id=0 where user_id=userid and name='file_root' and parent_id is null;
end loop;
close useriditer;
commit;// here !
end;
update entries set parent_id=0 where user_id=userid and name='file_root' and parent_id is null;
create procedure modifyrootentry()
begin
declare done int default false;
declare userid int;
declare useriditer cursor for select distinct user_id from entries;
start transaction; // here !
open useriditer;
read_loop: loop
fetch useriditer into userid;
if done then
leave read_loop;
end if;
insert into entries (id, name, user_id, parent_id) values(0, 'root_parent', userid, 0);
end loop;
update entries set parent_id=0 where user_id=userid and name='file_root' and parent_id is null; // here!
close useriditer;
commit;// here !
end;
create procedure pfastcreatenums (cnt int unsigned)
begin
declare s int unsigned default 1;
truncate table nums;
insert into nums select s;
while s*2
begin
insert into nums select a+s from nums;
set s = s*2;
end;
end while;
end;