mysql 存储过程的入参与传参
- 第1步,创建测试数据,示例库
it 示例表 users
CREATE DATABASE IF NOT EXISTS it;
USE it;
CREATE TABLE IF NOT EXISTS users(id int, name varchar(20));
INSERT INTO users VALUES(1,'aaa');
INSERT INTO users VALUES(2,'bbb');
- 第2步,创建一个入参与传参的存储过程,示例存储过程
get_name (传入 id 返回 name)
USE it;
DROP PROCEDURE IF EXISTS `get_name`;
DELIMITER $$
CREATE PROCEDURE `get_name`(IN user_id int, OUT user_name varchar(20))
BEGIN
SELECT name INTO user_name FROM users WHERE id = user_id;
END$$
DELIMITER ;
- 第3步,测试一下,示例 返回 id=2 的 name 名称
(root@localhost) [it]> SET @user_name = '';
(root@localhost) [it]> CALL it.get_name(2, @user_name);
(root@localhost) [it]> SELECT @user_name;
+------------+
| @user_name |
+------------+
| bbb |
+------------+