mysql存储过程返回结果

MySQL存储过程可以通过OUT参数或者SELECT语句返回结果。在存储过程中定义OUT参数,然后在执行过程中为其赋值,最后通过SELECT语句返回结果

MySQL存储过程是一种在数据库中存储的预编译SQL语句集合,可以通过调用存储过程名来执行,存储过程中可以包含参数,这些参数可以在调用存储过程时传递值,存储过程可以返回一个或多个参数,这些参数可以是输出参数、输入/输出参数或者只读参数。

1、输出参数

mysql存储过程返回结果

输出参数是存储过程中用于返回值的参数,在创建存储过程时,需要指定输出参数的类型和名称,在调用存储过程时,需要为输出参数提供值。

创建存储过程示例:

DELIMITER //
CREATE PROCEDURE GetEmployeeCount(IN department_id INT, OUT employee_count INT)
BEGIN
  SELECT COUNT(*) INTO employee_count FROM employees WHERE department_id = department_id;
END //
DELIMITER ;

调用存储过程示例:

SET @department_id = 1;
SET @employee_count = 0;
CALL GetEmployeeCount(@department_id, @employee_count);
SELECT @employee_count;

2、输入/输出参数

mysql存储过程返回结果

输入/输出参数是既可以作为输入也可以作为输出的参数,在创建存储过程时,需要指定输入/输出参数的类型和名称,在调用存储过程时,可以为输入/输出参数提供值,也可以从存储过程中获取值。

创建存储过程示例:

DELIMITER //
CREATE PROCEDURE UpdateEmployeeSalary(IN employee_id INT, IN new_salary DECIMAL(10, 2), OUT updated_salary DECIMAL(10, 2))
BEGIN
  UPDATE employees SET salary = new_salary WHERE id = employee_id;
  SELECT salary INTO updated_salary FROM employees WHERE id = employee_id;
END //
DELIMITER ;

调用存储过程示例:

SET @employee_id = 1;
SET @new_salary = 5000.00;
SET @updated_salary = 0.00;
CALL UpdateEmployeeSalary(@employee_id, @new_salary, @updated_salary);
SELECT @updated_salary;

3、只读参数

mysql存储过程返回结果

只读参数是存储过程中用于接收值但不返回值的参数,在创建存储过程时,需要指定只读参数的类型和名称,在调用存储过程时,可以为只读参数提供值。

创建存储过程示例:

DELIMITER //
CREATE PROCEDURE GetEmployeeName(IN employee_id INT, OUT first_name VARCHAR(50), OUT last_name VARCHAR(50))
BEGIN
  SELECT first_name, last_name INTO first_name, last_name FROM employees WHERE id = employee_id;
END //
DELIMITER ;

调用存储过程示例:

SET @employee_id = 1;
SET @first_name = '';
SET @last_name = '';
CALL GetEmployeeName(@employee_id, @first_name, @last_name);
SELECT @first_name, @last_name;

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/640093.html

(0)
未希的头像未希新媒体运营
上一篇 2024-05-21 06:14
下一篇 2024-05-21 06:15

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入