mysql> \d $$ mysql> DROP PROCEDURE IF EXISTS p5 $$ Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> CREATE PROCEDURE p5 (IN v_in INT, INOUT v_io INT, OUT v_out INT) -> BEGIN -> SELECT v_in, v_io, v_out; -> SET v_in = 10; -> SET v_io = 10; -> SET v_out = 10; -> SELECT v_in, v_io, v_out; -> END; -> $$ Query OK, 0 rows affected (0.00 sec) mysql> \d ; mysql> SET @a = 5; SET @b = 5; SET @c = 5; Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) mysql> CALL p5(@a, @b, @c); +------+------+-------+ | v_in | v_io | v_out | +------+------+-------+ | 5 | 5 | NULL | +------+------+-------+ 1 row in set (0.00 sec) +------+------+-------+ | v_in | v_io | v_out | +------+------+-------+ | 10 | 10 | 10 | +------+------+-------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.00 sec) mysql> SELECT @a, @b, @c; +------+------+------+ | @a | @b | @c | +------+------+------+ | 5 | 10 | 10 | +------+------+------+ 1 row in set (0.00 sec)