存储过程IN,OUT,INOUT参数

xde*_*000 10 mysql sql stored-procedures

任何人都可以详细解释IN,OUT和INOUT参数之间的区别吗?

谢谢.

PS我正在使用MySQL 5.5

zlo*_*ctb 7

1. IN

    mysql> CREATE PROCEDURE in_2(IN value INT )BEGIN SELECT value; SET value =100;SE
    LECT value;END//
    Query OK, 0 rows affected (0.00 sec)

     mysql> SET @s =9//
    Query OK, 0 rows affected (0.00 sec)

    mysql> CALL in_2(@s)//
    +-------+
    | value |
    +-------+
    |     9 |
    +-------+
    1 row in set (0.00 sec)

    +-------+
    | value |
    +-------+
    |   100 |
    +-------+
    1 row in set (0.00 sec)

mysql> SELECT @s;
    -> //
+------+
| @s   |
+------+
|    9 |
+------+
1 row in set (0.00 sec) 
Run Code Online (Sandbox Code Playgroud)

2.OUT

mysql> CREATE PROCEDURE in_3(OUT value INT)
    -> SET value=100//
Query OK, 0 rows affected (0.00 sec)

mysql> SET @x=56//
Query OK, 0 rows affected (0.00 sec)

mysql> CALL in_3(@x)//
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @x//
+------+
| @x   |
+------+
|  100 |
+------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)


Ela*_*hmi 5

IN 参数按值传递到 SP。OUT 参数按值从 SP 返回。INOUT 参数通过引用传递,因为它们包含一个传入的值和另一个传出的值。


bma*_*ies 1

嗯,在参数中从调用者那里接收数据。out 参数将数据推送到其调用者(按引用调用)。inout 参数同时执行这两个操作。如果没有更清楚地了解您想知道什么,我不确定如何使其更详细。