存储过程的循环体
1.while循环:
while 条件 do 循环操作;
set 变量累加;
end while;
例子:
while var<6 do
insert into t values(var);
set var=var+1;
end while;
2.repeat循环:
repeat 循环操作;
set 变量累加;
until 条件 -- 结尾不加分号
end repeat;
例子:
repeat
insert into why.why(a) values(var);
set var=var+1;
until var>5
end repeat;
3.loop循环:
LOOP_LABLE:loop -- LOOP_LABLE为标签
循环操作;
set 变量累加;
if 条件 then leave LOOP_LABLE; -- 达到条件跳出标签循环体
end if;
end loop;
例子:
LOOP_LABLE:loop
insert into why.why(b) values(var);
set var=var+1;
if var >5 then
leave LOOP_LABLE;
end if;
end loop;
4.LABLES标号可以用在begin、repeat、while、loop语句前,可以跳出循环,使运行指令达到复合语句的最后一步。
5.ITERATE迭代 --通过引用复合语句的标号,来从新开始复合语句:
例子:
DELIMITER //
CREATE PROCEDURE proc10 ()
begin
declare v int;
set v=0;
LOOP_LABLE:loop
if v=3 then
set v=v+1;
ITERATE LOOP_LABLE;
end if;
insert into t values(v);
set v=v+1;
if v>=5 then
leave LOOP_LABLE;
end if;
end loop;
end;
//
DELIMITER ;
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529