PL / SQL触发器 - 行触发器

时间:2018-03-11 10:17:17

标签: oracle plsql

我需要使用行触发器来使用公式更新所有工资: Salary = salary * 1.1

创建的表格如下:Employee (EmployeeID, Name, Address, Phone, Salary)

3 个答案:

答案 0 :(得分:0)

您可以简单地创建这种类型的触发器:

create or replace trigger trg_upd_salaries 
after update on Employee
for each row
begin
  :new.salary := :new.salary * 1.1;
end;
/

触发器是主要用于在DML操作期间触发的结构。重新选择要在触发器内更新的已插入值是没有意义的,应用经典update语句来更改已插入的值。

答案 1 :(得分:0)

使用:NEW并将其* 1.1相乘,实现方式如下:

CREATE OR REPLACE TRIGGER tr_updatesalaries
BEFORE UPDATE ON Employee
FOR EACH ROW
BEGIN
    :NEW.salary := :NEW.salary * 1.1;
END;
/

答案 2 :(得分:0)

不,你不需要触发器。您需要update employee set salary = salary * 1.1; 声明:

String#getChars

这将使所有现有工资提高10%。

但是,如果您确实需要为插入表格的每个新行执行此操作,那么是 - 您需要触发器。 但是,这样做的目的是什么?一次插入有效值,不要(重新)计算它。