小编Aru*_*van的帖子

用于更新的 PL/SQL 触发器

我有两个具有相同结构和相同数据的emp表。copy_emp我希望如果发生任何变化都emp应该反映在copy_emp. 因此我创建了一个触发器,如下所示。

create or replace trigger t
after
insert or
update of empno or
delete
on emp
for each row
begin
case
when inserting then
  insert into copy_emp(empno,ename,sal) values (:NEW.empno,:NEW.ename,:NEW.sal);
when updating then
  if updating('empno') then
    update copy_emp set copy_emp.empno=:new.empno where copy_emp.empno=:old.empno;
  elsif updating('ename') then
    update copy_emp set copy_emp.ename=:new.ename where copy_emp.ename=:old.ename;
  elsif updating('sal') then
    update copy_emp set copy_emp.sal=:new.sal where copy_emp.sal=:old.sal;
end if;
when deleting then
  delete from copy_emp where empno = :old.empno; …
Run Code Online (Sandbox Code Playgroud)

oracle plsql

1
推荐指数
1
解决办法
6546
查看次数

标签 统计

oracle ×1

plsql ×1