1、存储过程
delimiter //
drop procedure if exists test;
create procedure test(in p_in int,out p_out int,inout p_inout int)
begin
select p_in,p_out,p_inout;
set p_in = 1;
set p_out = 2;
set p_inout = 3;
select p_in,p_out,p_inout;
end
//
delimiter ;
set @p_in = 0;
set @p_out = 0;
set @p_inout = 0;
call test(@p_in,@p_out,@p_inout);
select @p_in,@p_out,@p_inout;
执行结果如下
image.png
out参数不受传入值的影响,所有out参数一开始均为空
image.png
image.png
in参数不会因为内部改变其值而改变
2、函数
PS:函数没有 in out inout参数的说法。
delimiter //
drop FUNCTION if exists testfun;
CREATE FUNCTION testfun(a int,b int) RETURNS int
begin
return a+b;
end
//
delimiter ;
select testfun(1,2);
image.png