我需要使用行触发器来使用公式更新所有工资:
Salary = salary * 1.1
。
创建的表格如下:Employee (EmployeeID, Name, Address, Phone, Salary)
。
答案 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%。
但是,如果您确实需要为插入表格的每个新行执行此操作,那么是 - 您需要触发器。 但是,这样做的目的是什么?一次插入有效值,不要(重新)计算它。