0
我是与数据库相关的新事物。我有我的学校作业。它要求我为员工工资更新时创建一个触发器。问题是:Oracle - 尝试创建触发器,但不断收到编译错误导致的触发器。
“假设STA有一条规则说明员工的薪水不能超过原始薪资的20%。创建一个触发器salary_change来强制执行此约束。触发器触发每当有更新时当规则被违反salaryin employeetableand输出相应的错误信息。“
表的结构可用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;
/
我可以知道什么时候我应该用“:”?在我的导师给出的例子中,有时会使用new.emp_salary,但有时会使用new.emp_salary。 “:”有时也与“=”一起使用。 – Lewis
我添加了old.emp_salary,但仍然收到编译错误导致的触发器。 – Lewis