mysql 存储过程 out in_MySQL 具有IN,OUT,INOUT参数的存储过程

示例

DELIMITER $$

DROP PROCEDURE IF EXISTS sp_nested_loop$$

CREATE PROCEDURE sp_nested_loop(IN i INT, IN j INT, OUT x INT, OUT y INT, INOUT z INT)

BEGIN

DECLARE a INTEGER DEFAULT 0;

DECLARE b INTEGER DEFAULT 0;

DECLARE c INTEGER DEFAULT 0;

WHILE a 

WHILE b 

SET c = c + 1;

SET b = b + 1;

END WHILE;

SET a = a + 1;

SET b = 0;

END WHILE;

SET x = a, y = c;

SET z = x + y + z;

END $$

DELIMITER ;

调用(调用)存储过程:

SET @z = 30;

call sp_nested_loop(10, 20, @x, @y, @z);

SELECT @x, @y, @z;

结果:

+------+------+------+

|  @x  |  @y  |  @z  |

+------+------+------+

|  10  |  200 |  240 |

+------+------+------+

一个IN参数传送一个值的过程。该过程可能会修改该值,但是该过程返回时,调用者看不到该修改。

一个OUT参数传送从过程返回给调用者的值。在过程中,其初始值为NULL,并且在过程返回时,调用者可以看到其初始值。

一个INOUT参数是由呼叫者初始化,可以由程序进行修改,并且由所述方法制备的任何变化是可见的呼叫者时,过程返回。

参考:http://dev.mysql.com/doc/refman/5.7/en/create-procedure.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值