存储过程传參:存储过程的括号中。能够声明參数。 语法是 create procedure p([in/out/inout] 參数名  參数类型 ..)
in :给參数传入值,定义的參数就得到了值
out:模式定义的參数仅仅能在过程体内部赋值。表示该參数能够将某个值传递回调用他的过程(在存储过程内部。该參数初始值为 null,不管调用者是否给存储过程參数设置值)
inout:调用者还能够通过 inout 參数传递值给存储过程,也能够从存储过程内部传值给调用者

假设只想把数据传给 MySQL 存储过程,那就使用“in” 类型參数。
假设只从 MySQL 存储过程返回值,那就使用“out” 类型參数;
假设须要把数据传给 MySQL 存储过程,还要经过一些计算后再传回给我们,此时,要使用“inout” 类型參数。 
MySQL 存储过程參数假设不显式指定"in"、"out"、"inout",则默觉得"in"。

实例一:存储过程传參 in
DELIMITER $$
CREATE PROCEDURE p1(IN num INT)
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE total INT DEFAULT 0;
WHILE i<=num DO
SET total := i + total;
SET i := i+1;
END WHILE;
SELECT total;
END$$

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3V1Z2xlMjAxMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


实例二:存储过程传參 out
CREATE PROCEDURE p2(OUT num INT)
BEGIN
SELECT num AS num_1;
IF (num IS NOT NULL) THEN
SET num = num + 1;
SELECT num AS num_2;
ELSE
SELECT 1 INTO num;
END IF;
SELECT num AS num_3;
END$$
SET @num = 10$$
CALL p2(@num)$$
SELECT @num AS num_out$$


实例三:存储过程传參 inout
CREATE PROCEDURE p3(INOUT age INT)
BEGIN
SET age := age + 20;
END$$
set @currage =18$$
call p3(@currage)$$
select @currage$$

MySQL 存储过程传參之in, out, inout 參数使用方法的更多相关文章

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

    存储过程传参:存储过程的括号里,可以声明参数. 语法是 create procedure p([in/out/inout] 参数名  参数类型 ..) in :给参数传入值,定义的参数就得到了值 ou ...

  2. MySQL 存储过程传参数实现where id in(1,2,3,...)示例

    一个MySQL 存储过程传参数的问题想实现例如筛选条件为:where id in(1,2,3,...),下面有个不错的示例,感兴趣的朋友可以参考下   正常写法:  ,,,,...); 当在写存储过程 ...

  3. mysql存储过程中in、out、inout参数使用实际案例

    1.参数in的使用(代表输入,意思说你的参数要传到存过过程的过程里面去)//为了避免存储过程中分号(";")结束语句,我们使用分隔符告诉mysql解释器,该段命令是否已经结束了./ ...

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

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

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

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

  6. mysql存储过程 OUT or INOUT argument 3 for routine

    mysql存储过程出现: OUT or INOUT argument 3 for routine gotask.UserLogin is not a variable or NEW pseudo-va ...

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

    MySQL 存储过程参数IN OUT INOUT对比 一.IN -- 创建测试存储过程 delimiter // create procedure p_in ( IN num int ) begin ...

  8. 熟知MySQL存储过程

    存储过程(Stored Procedure)是一组为了完毕特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给定參数(假设该存储过程带有參数)来调用运行它. MySQL 存储 ...

  9. MYSQL存储过程、游标、触发器

    MySQL5 中添加了存储过程的支持. 大多数SQL语句都是针对一个或多个表的单条语句.并非所有的操作都怎么简单.经常会有一个完整的操作需要多条才能完成  存储过程简单来说,就是为以后的使用而保存的一 ...

随机推荐

  1. 牛客网数据库SQL实战 1-11

    1. 查找最晚入职员工的所有信息 CREATE TABLE `employees` ( `emp_no` ) NOT NULL, `birth_date` date NOT NULL, `first_ ...

  2. [POJ] 2223 Muddy Fields

    Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11490 Accepted: 4270 Description Rain has ...

  3. MySQL配置索引页的合并阈值

    MySQL配置索引页的合并阈值 如果删除行或者通过UPDATE操作缩短行 可以为索引页面配置MERGE_THRESHOLD值. 当delete与update缩短了行长度时,索引页的"page ...

  4. vue 运行时 + 编译器 vs. 只包含运行时

    https://cn.vuejs.org/v2/guide/installation.html#运行时-编译器-vs-只包含运行时 文档中的这个地方,说的不清楚 If you need to comp ...

  5. Restful API(转)

    原文链接 http://www.ruanyifeng.com/blog/2014/05/restful_api.html 一.协议 API与用户的通信协议,总是使用HTTPs协议. 二.域名 应该尽量 ...

  6. POJ 3620 Avoid The Lakes (求连接最长的线)(DFS)

    Description Farmer John's farm was flooded in the most recent storm, a fact only aggravated by the i ...

  7. luoguT21778 过年

    差分一下上线段树 #include <iostream> #include <cstdio> #include <vector> using namespace s ...

  8. Coloring Brackets (区间DP)

    Once Petya read a problem about a bracket sequence. He gave it much thought but didn't find a soluti ...

  9. SpringMVC(8) - 处理器映射

    在以前的Spring版本中,用户需要在Web应用程序上下文中定义一个或多个HandlerMapping bean,以将传入的Web请求映射到适当的处理器.通过引入带注解的控制器,就不需要像之前那样定义 ...

  10. UVA 11090 判负圈问题

    题目链接http://vjudge.net/problem/viewProblem.action?id=34650 题目大意: 给定n个点m条边的加权有向图,求平均权值最小的回路.平均权值=路径权值之 ...