- 论坛徽章:
- 1
|
随便写了个。。。
drop PROCEDURE if EXISTS test ;
CREATE PROCEDURE test()
BEGIN
DECLARE done,done2 INT DEFAULT 0;
DECLARE a CHAR(36);
DECLARE c INT DEFAULT 0;
DECLARE b INT DEFAULT 0;
DECLARE cursor_name CURSOR FOR select DISTINCT(`uid`) from leoxqing ;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
open cursor_name;
REPEAT
FETCH cursor_name INTO a;
if not done then
BEGIN
DECLARE cursor_name2 CURSOR FOR select gid from leoxqing where uid=a;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done2 = 1;
open cursor_name2;
set b=0;
repeat
FETCH cursor_name2 INTO c;
set b=b + 1;
if not done2 then
update leoxqing set gversion=b where uid=a and gid=c;
end if;
until done2 end repeat;
close cursor_name2;
set done2=0;
end;
end if;
UNTIL done END REPEAT;
close cursor_name;
END
|
|
|