• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 4年前 (2022-01-09) 31次浏览 已收录 0个评论

存储过程传参:存储过程的括号里,可以声明参数。 语法是 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$$

实例二:存储过程传参 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$<strong>本文来源gaodai#ma#com搞@@代~&码网</strong>$call p3(@currage)$$select @currage$$

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL存储过程传参之in,out,inout参数用法_MySQL
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址