MySQL存储过程支持三种类型的参数:输入参数、输出参数和输入/输出参数,关键字分别是IN、OUT和INOUT。输入参数使数据可以传递给一个存储过程。当需要返回一个答案或结果的时候,存储过程使用输出参数。输入/输出参数既可以充当输入参数也可以充当输出参数。存储过程也可以不加参数,但是名称后面的括号是不可省略的。
--输出参数
create procedure pro_2(out i Integer)
begin
SET I=0;
flag:loop
if i<10 then
set i=i+1;
else
LEAVE flag;
end if;
END loop flag;
end;
CALL PRO_2(@NUM_out);
SELECT @NUM_out;
--输入参数
create procedure pro_3(IN i Integer)
begin
flag:loop
if i<10 then
set i=i+1;
else
LEAVE flag;
end if;
END loop flag;
end;
CALL PRO_3(2);
SELECT @NUM_in;--查不出来数据
--输入输出参数
create procedure pro_4(INOUT i Integer)
begin
flag:loop
if i<10 then
set i=i+1;
else
LEAVE flag;
end if;
END loop flag;
end;
set @num_inout=0;
CALL PRO_4(@NUM_inout);
SELECT @NUM_inout;