MySQL 存储过程参数IN OUT INOUT区别

本文详细解释了MySQL存储过程中的三种参数类型:IN、OUT和INOUT的区别与使用场景。IN参数用于输入数据但不返回修改;OUT参数不接受输入但可以返回计算结果;INOUT参数既可输入也可返回修改后的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL 存储过程参数IN OUT INOUT区别

MySQL 存储过程参数IN OUT INOUT对比

一、IN

-- 创建测试存储过程

delimiter //
create procedure p_in ( IN num int )
begin
    select num;
    set num=100;
    select num;
end;
//
delimiter ;

set @num=100;
call p_in(@num)

二、OUT

-- 创建测试存储过程

delimiter //
create procedure p_out ( OUT num int )
begin
    select num;
    set num=100;
    select num;
end;
//

delimiter ;

set @num=100;
call p_out(@num)

三、INOUT

-- 创建测试存储过程

delimiter //
create procedure p_inout ( INOUT num int )
begin
    select num;
    set num=100;
    select num;
end;
//
delimiter ;

set @num=100;
call p_inout(@num)

 总结:

IN 输入参数

表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值

仅需要将数据传入存储过程,并不需要返回计算后的该值。

只能当做传入参数

OUT 输出参数

该值可在存储过程内部被改变,并可返回

不接受外部传入的数据,仅返回计算之后的值。

只能当做转出参数

INOUT 输入输出参数

调用时指定,并且可被改变和返回

需要数据传入存储过程经过调用计算后,再传出返回值

可当做传入转出参数

 

posted @ 2018-09-17 20:35 韦邦杠 阅读( ...) 评论( ...) 编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值