创建存储过程 raise_salary,要求输入员工编号emp_id,实现如下功能:如果northwind.employees 表中员工薪资低于 9000 元且工龄超过 5 年,涨薪 500 元;否则涨薪 100 元。
时间: 2024-05-13 17:16:00 浏览: 49
以下是创建 raise_salary 存储过程的 SQL 代码:
```sql
CREATE PROCEDURE raise_salary (IN emp_id INT)
BEGIN
DECLARE emp_salary INT;
DECLARE emp_hire_date DATE;
DECLARE emp_years INT;
-- 获取员工薪资和入职日期
SELECT salary, hire_date INTO emp_salary, emp_hire_date
FROM northwind.employees
WHERE employee_id = emp_id;
-- 计算员工工龄
SET emp_years = YEAR(CURDATE()) - YEAR(emp_hire_date);
-- 根据员工薪资和工龄涨薪
IF emp_salary < 9000 AND emp_years > 5 THEN
UPDATE northwind.employees SET salary = salary + 500 WHERE employee_id = emp_id;
ELSE
UPDATE northwind.employees SET salary = salary + 100 WHERE employee_id = emp_id;
END IF;
END;
```
使用方法:
```sql
CALL raise_salary(emp_id);
```
其中,`emp_id` 是要涨薪的员工编号。调用存储过程后,会根据员工当前薪资和工龄决定涨薪幅度,并更新员工的薪资信息。