存储过程控制流
declare关键字
declare j int default 10;
select j;
ser关键字
set j = 12;
set @testInt = 11;
call procedure1();
select @testInt;
if关键字
declare var int default 1;
if var = 1 then
select 'var = 1';
elseif var = 2 then
select 'var = 2';
else
select 'var not 1 and 2';
endif;
while关键字
declare i int default 1;
while i <= 5 do
select i;
set i = i + 1;
end while;
repeat关键字
repeat
select i;
set i = i + 1;
until i > 5
end repeat;
leave关键字
实现流程控制,并可以跳出当前声明的循环或代码块
iterate条件语句
delimiter $$
create procedure my_procedure()
begin
select * from dept;
end $$
delimiter;
查看存储过程
ShOW procedure status where db='beego';
select SPECIFIC_NAME,routine_definition from information_schema.routines where ROUTINE_SCHEMA='beego';
带输入参数
delimiter $$
create procedure my_procedure1(in indeptno int)
begin
select * from aoteman where id = indeptno;
end $$
delimiter;
call my_procedure1(1)
带输出参数
delimiter $$
create procedure my_procedure4 (out mydnamel varchar(255))
begin
select name into mydnamel from aoteman where id = 1;
end $$
delimiter;
call my_procedure4(@mydname1);
select @mydname1
带输入输出参数
delimiter $$
create procedure myprocedure5( inout inoutdeptno int, in dname varchar(255))
begin
select id into inoutdeptno from aoteman where name = dname;
select inoutdeptno + 1;
end $$
delimiter;
set @test_int=1;
call myprocedure5(@test_int,'泰拿');
select @test_int;