mysql - 存储过程 IN、OUT、INOUT 参数

标签 mysql sql stored-procedures

谁能详细解释一下IN、OUT、INOUT参数的区别?

谢谢。

附言 我正在使用 MySQL 5.5

最佳答案

1.在

    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) 

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)

关于mysql - 存储过程 IN、OUT、INOUT 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5537978/

相关文章:

c# - 使用 Entity Framework 作为对象读取的 sql_variant 无法转换为其实际类型

sql - 使用 Cases 选择 2 个表上的 UNION ALL

MySQL group 和 sum 连接表

mysql - InnoDB 文档 支持事务、行级锁定和外键

sql - 从每个组中返回具有最新时间戳的行

stored-procedures - 从存储过程有条件地插入

mysql - aes_encrypt 函数不适用于 mysql 过程

c# - 调用存储过程

当涉及内连接时 MySQL 条件选择

java - Spring 3.0 : SQL not committed when exception is thrown