MYSQL存储过程带参数
时间: 2023-09-29 15:02:56 浏览: 95
下面是一个示例MYSQL存储过程带参数的语法:
```mysql
CREATE PROCEDURE procedure_name(IN parameter1 datatype1, IN parameter2 datatype2, ..., IN/OUT/OUT parameterN datatypeN)
BEGIN
-- 这里是存储过程的主体代码
END;
```
其中:
- `procedure_name` 是你要创建的存储过程的名称。
- `IN parameter1 datatype1, IN parameter2 datatype2, ..., IN/OUT/OUT parameterN datatypeN` 是参数列表。每个参数都指定了参数的名称、数据类型和方向(输入、输出或输入输出)。IN 表示输入参数,OUT 表示输出参数,INOUT 表示输入输出参数。
- 存储过程的主体代码在 BEGIN 和 END 之间。你可以在这里编写任何 SQL 语句,包括 SELECT、INSERT、UPDATE、DELETE 等。
下面是一个示例存储过程,它带有两个输入参数和一个输出参数:
```mysql
CREATE PROCEDURE get_employee_salary(IN employee_id INT, IN year INT, OUT salary DECIMAL(10, 2))
BEGIN
SELECT SUM(amount) INTO salary
FROM salary_table
WHERE employee_id = employee_id
AND YEAR(date) = year;
END;
```
这个存储过程接受两个输入参数:`employee_id` 和 `year`。它还定义了一个输出参数 `salary`,用于存储查询结果。存储过程的主体代码使用 `SUM` 函数计算给定员工在给定年份内的总薪资,并将结果存储在 `salary` 参数中。
阅读全文