存储过程参数
- 存储过程的参数用在存储过程的定义,共有三种参数类型:IN,OUT,INOUT;
- IN 输入参数:表示调用者向过程传入值;
- OUT 输出参数:表示过程向调用者传出值(可以返回多个值);
- INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值;
存储过程参数——in
# 创建存储过程
delimiter //
create procedure in_param(in p_in int)
begin
select p_in;
set p_in=2;
select p_in;
end
//
delimiter;
# 设置变量
set @p_in=1;
# 调用存储过程
call in_param(@p_in);
# 查看变量值
select @p_in;
-- 调用存储过程结果
p_in
1
p_in
2
-- 查看变量值结果
@p_in
1
p_in在存储过程中被修改,但并不影响@p_in的值,因为前者为局部变量,后者为全局变量;
存储过程参数——out
# 创建存储过程
delimiter //
create procedure out_param(p_out int)
begin
select p_out;
set p_out=2;
select p_out;
end
//
delimiter ;
# 设置变量
set @p_out=1;
# 调用存储过程
call out_param(@p_out);
# 查看变量值
select @p_out;
-- 调用存储过程结果
p_out
NULL
-- 因为out是向调用者输出参数,不接收输入的参数,所以存储过程里面的p_out为null
p_out
2
-- 查看变量值结果
@p_out
2
-- 调用了out_param存储过程,输出参数,改变了p_out变量的值
存储过程参数——inout
delimiter //
create procedure inout_param(inout p_inout int)
begin
select p_inout;
set p_inout=2;
select p_inout;
end
//
delimiter ;
# 设置变量
set @p_inout=1;
# 调用存储过程
call inout_param(@p_inout);
# 查看变量值
select @p_inout;
-- 调用存储过程结果
p_inout
1
p_inout
2
-- 查看变量值结果
@p_inout
2
# 调用了inout_param存储过程,接受了输入的参数,也输出参数,改变了变量;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




