我是与数据库相关的新手。我有学校的家庭作业。它需要我在员工薪水更新时创建一个触发器。问题是:
“假设STA有一条规则,规定员工的工资不能超过原工资的20%。创建一个触发器salary_change来强制执行此约束。只要有一个工资更新,触发器就会触发并输出一个合适的违反规则时出现错误消息。“
表的结构可用here
下面是我创建的代码,但是编译错误。
create or replace trigger salary_change
before update of emp_salary on employee
for each row
begin
if :new.emp_salary > :emp_salary * 1.2 then
raise_application_error(-20000, ('New salary for employee ' || emp_name || ' is getting more than 20% raise'));
end if;
end;
/
答案 0 :(得分:0)
您可以(并且应该)在更新之前使用:old
来引用记录:
if :new.emp_salary > :old.emp_salary * 1.2 then
-- Here ---------^