pl/sql-create trigger on a table - 每当在同一个表中插入新记录时,应更新表的另一列
Posted
技术标签:
【中文标题】pl/sql-create trigger on a table - 每当在同一个表中插入新记录时,应更新表的另一列【英文标题】:pl/sql-create trigger on a table -whenever a new record is inserted in the same table another column of the table should be updated 【发布时间】:2021-12-06 21:01:07 【问题描述】:create trigger calculation after insert on employee
for each row
begin
if :new.updated_sal is null
then
update employee set updated_sal= (10/100)* salary
where id=:new.id;
end if;
end;
我想在employee表上创建一个触发器,每当在同一张表中插入一条新记录时,应该计算salary列中薪水的10%并将其放入另一列updated_sal中。 如果我尝试插入一条新记录,则表明该表已发生变异等
【问题讨论】:
【参考方案1】:这只是您需要的 :new
伪记录:
create trigger calculation
after insert on employee
for each row
begin
if :new.updated_sal is null then
:new.updated_sal := (10/100) * :new.salary;
end if;
end;
【讨论】:
但它必须是 before 触发器。 after 触发器无法更改列值。【参考方案2】:你需要在插入触发器之前使用, 并使用 :New.updated_sal:= :new.salary * somevalue 分配工资。
【讨论】:
以上是关于pl/sql-create trigger on a table - 每当在同一个表中插入新记录时,应更新表的另一列的主要内容,如果未能解决你的问题,请参考以下文章
Oracle:新增用户登录提示“ORA-04098:触发器‘GD.ON_LOGON_TRIGGER’无效且未通过重新验证”
jquery14 on() trigger() : 事件操作的相关方法
jquery15 on() trigger() : 事件操作的相关方法
Derby Trigger on UPDATE:如何更新时间戳?