云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

mysql存储过程返回结果

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

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

1、输出参数

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

创建存储过程示例:

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、输入/输出参数

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

创建存储过程示例:

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、只读参数

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

创建存储过程示例:

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;
打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《mysql存储过程返回结果》
文章链接:https://www.yunzhuji.net/internet/177924.html

评论

  • 验证码