- MySQL存储过程传参之in,out,inout参数用法
如果仅仅想把数据传给 MySQL 存储过程,那就使用“in” 类型参数;如果仅仅从 MySQL 存储过程返回值,那就使用“out” 类型参数;如果需要把数据传给 MySQL 存储过程,还要经过一些计算后再传回给我们,此时,要使用“inout” 类型参数。MySQL 存储过程参数如果不显式指定"in"、"out"、"inout",则默认为"in"。
实例一:存储过程传参 in
1
2
3
4
5
6
7
8
9
10
11
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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
1
2
3
4
5
6
7
|
CREATE
PROCEDURE
p3(INOUT age
INT
)
BEGIN
SET
age := age + 20;
END
$$
set
@currage =18$$
call p3(@currage)$$
select
@currage$$
|