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 输入输出参数

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

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

可当做传入转出参数

MySQL 存储过程参数IN OUT INOUT区别的更多相关文章

  1. MySQL 存储过程参数用法 in, out, inout

    MySQL 存储过程参数有三种类型:in.out.inout.它们各有什么作用和特点呢? 一.MySQL 存储过程参数(in) MySQL 存储过程 “in” 参数:跟 C 语言的函数参数的值传递类似 ...

  2. MySQL 存储过程参数

    MySQL  存储过程参数 MySQL存储过程参数简介 在现实应用中,开发的存储过程几乎都需要参数.这些参数使存储过程更加灵活和有用. 在MySQL中,参数有三种模式:IN,OUT或INOUT. IN ...

  3. MySQL存储过程与存储函数的区别

    语法定义上的区别就不说了,说一下其他的.如果有不正确的地方,还请大家指正. 1.总述存储函数和存储过程统称为存储例程(stored routine).两者的定义语法很相似,但却是不同的内容.存储函数限 ...

  4. mysql存储过程出现OUT or INOUT argument 10 for routine

    OUT or INOUT argument 10 for routine * is not a variable or NEW pseudo-variable 我查网上很多出现在call的时候没有添加 ...

  5. MYSQL存储过程中的IN、OUT和INOUT

    MYSQL存储过程中的IN.OUT和INOUT,不能简单理解为一个方法的参数和返回值,而是面向整个过程上下文变量的. 一.MySQL 存储过程参数(in) 基本可以理解为传入function的参数,而 ...

  6. MySQL存储过程(转)

    一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b" ...

  7. Mysql存储过程调用

    mysql存储过程实例教程 发布时间:2014-04-09编辑:JB01 这篇文章主要介绍了mysql存储过程的使用方法,mysql存储过程实例教程,有需要的朋友参考下.   1.1create  p ...

  8. MySQL存储过程(一)

    1.1 CREATE  PROCEDURE (创建) CREATE PROCEDURE存储过程名 (参数列表) BEGIN SQL语句代码块 END 注意: 由括号包围的参数列必须总是存在.如果没有参 ...

  9. MySQL存储过程(转载)

    转自:http://www.blogjava.net/sxyx2008/archive/2009/11/24/303497.html 1.1         CREATE  PROCEDURE  (创 ...

随机推荐

  1. c++ for_each( )学习

    for_each()事实上是個 function template,其实质如下  [effective STL item 41] template<typename InputIterator, ...

  2. Linux虚拟机无法通过宿主机上网

    解决方法 1.Windows: 确保相关服务已经启动 2.Linux: 确保相关服务已经启动 1) 确认Linux的IP地址和Windows在同一个网段: 若Windows给虚拟机分配的IP地址如下: ...

  3. java && C# 线程

      1.多个线程用到同一个资源的话,必须lock 2.为了解决,在竞争的情况下,优先分配资源给A.就是A和B线程都同时在同一时刻需要资源x,然后的话也不清楚系统是具体怎样调度的.或者说怎样调度,都有可 ...

  4. 性能测试工具LoadRunner16-LR之Controller 负载运行时设置

  5. Python 的命名空间

    Python命名空间的本质: 一.命名空间的定义: 二.命名空间的查找顺序: 三.命名空间的生命周期: 四.通过locals()和globals() BIF访问命名空间. 重点是第四部分,我们将在此部 ...

  6. 比特币--私钥->公钥->钱包地址

    脑钱包-字符串SHA256散列成256bit当做私钥-彩虹表 脑钱包是开源的程序-->用户输入字符串当做密码-->经过SHA256散列算法-->256长bit位 (即是私钥)--&g ...

  7. hduoj 2546饭卡

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  8. 详解在Hibernate中配置数据库方言的作用和好处以及各种数据库的方言连接

    Hibernate底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持使用标准SQL语句,但所有数据库都对标准SQL进行了一些扩展,所以在语法细节上存在一些差异,因此Hibernate需 ...

  9. GitKraken使用教程-基础部分(3)

    5. 克隆服务器上的项目 首先,返回主界面,点击File => Clone Repo,选择 Clone with URL,如下图: 图 5‑1 SSH方式克隆仓库界面 1) SSH 方式连接仓库 ...

  10. HDU 2389 ——Rain on your Parade——————【Hopcroft-Karp求最大匹配、sqrt(n)*e复杂度】

    Rain on your Parade Time Limit:3000MS     Memory Limit:165535KB     64bit IO Format:%I64d & %I64 ...