mysql存储过程总结

存储过程控制流
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;

 

 

 

 

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: