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;
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。