MYSQL存储过程中-流程控制语句
存储过程中常用的流程控制
复习下存储过程内部的语法
定义存储过程体的局部变量:
定义方法:DECLARE a INT DEFAULT 100或者DECLARE a INT ; SET a=100;
定义全局用户变量:
定义方法:
在存储过程中通过set或select方式定义的变量是全局变量
set @a = 123;
或
SELECT 'Hello World' into @a;
在存储过程中使用用户变量
mysql> create procedure p2()
-> begin
-> select concat(@a,'hello');
-> end
-> //
分支控制 case 、 if
1,case when then else end case
mysql> create procedure p6()
-> begin
-> case when 5>0 then select 1;
-> else select 2;
-> end case;
-> end
-> //
Query OK, 0 rows affected (0.00 sec)
2, if then else end if
mysql> create procedure p5()
-> begin
-> declare a int default 4;
-> declare b int default 5;
-> if a>b then select a;
-> else select b;
-> end if;
-> end
-> //
Query OK, 0 rows affected (0.00 sec)
循环控制 while
3, while 循环控制
mysql> create procedure p8()
-> begin
-> declare a int default 5;
-> while a>1 do set a = a-1;
-> end while;
-> end
-> //
4,repeat until 循环控制
repeat
set i = i + 1;
insert into emp values((start+i), rand_string(6), 'salesman', 0001, curdate(), 2000, 400, rand_num());
until i = max_num
end repeat;