MySQL 存储过程(Stored Procedure)是一种在 MySQL 数据库中存储和编译的可重用 SQL 代码块,它可以执行一系列 SQL 语句。存储过程可以接受参数、返回结果集,并且可以在应用程序中被多次调用。
MySQL 存储过程主要有以下几种类型:
存储过程广泛应用于以下场景:
以下是一个简单的 MySQL 存储过程示例,该存储过程接受一个输入参数并返回一个输出参数列表:
DELIMITER //
CREATE PROCEDURE GetUsersByRole(IN role VARCHAR(50), OUT user_list TEXT)
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE user_name VARCHAR(50);
DECLARE cur CURSOR FOR SELECT name FROM users WHERE role = GetUsersByRole.role;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
SET user_list = '';
OPEN cur;
read_loop: LOOP
FETCH cur INTO user_name;
IF done THEN
LEAVE read_loop;
END IF;
SET user_list = CONCAT(user_list, user_name, ', ');
END LOOP;
CLOSE cur;
SET user_list = SUBSTRING(user_list, 1, LENGTH(user_list) - 2); -- 去掉最后的逗号和空格
END //
DELIMITER ;
SET @role = 'admin';
SET @user_list = '';
CALL GetUsersByRole(@role, @user_list);
SELECT @user_list;
通过以上信息,你应该对 MySQL 存储过程输出列表有了全面的了解,并能够解决常见的相关问题。
领取专属 10元无门槛券
手把手带您无忧上云