创建触发器,当修改雇员的工资级别时,如果新的工资级别不在该雇员工作(job_id)的最低最高工资级别(jobs 表的min_lvl, max_lvl)范围内,将该雇员的工资级别设置为该雇员工作(job_id)的最低工资级别(min_lvl)。
时间: 2024-05-05 15:19:12 浏览: 162
练习利用PLSQL Developer编写和管理存储过程、存储函数和触发器等
4星 · 用户满意度95%
好的,针对您的问题,可以使用如下的 SQL 语句创建触发器:
```
CREATE TRIGGER update_employee_salary
BEFORE UPDATE OF salary ON employees
FOR EACH ROW
BEGIN
DECLARE job_min_lvl INT;
DECLARE job_max_lvl INT;
SELECT min_lvl, max_lvl INTO job_min_lvl, job_max_lvl
FROM jobs WHERE job_id = NEW.job_id;
IF NEW.salary < job_min_lvl OR NEW.salary > job_max_lvl THEN
SET NEW.salary = job_min_lvl;
END IF;
END;
```
该触发器会在每次执行雇员薪资更新操作前自动触发,并根据雇员所在工作的最高、最低工资级别限制来自动更新雇员的薪资。如果更新后的薪资不在工作级别范围内,则会被更新为工作的最低工资级别。
阅读全文