我有兩個表emp
& copy_emp
具有相同的結構和相同的數據。 我想如果emp
發生任何變化應該反映在copy_emp
。 因此我創建了一個觸發器,我在下面給出。用於更新的PL/SQL TRIGGER
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;
end case;
end;
觸發器創建時沒有任何錯誤,插入和刪除工作正常。 問題與更新。當我更新empno
列中的emp
表時,它也會在copy_emp
表中更新。但是當我更新ename
或sal
列時,它只會在emp
表中更新,但不會在copy_emp
表中更新。請幫忙。
物化視圖似乎是一個更好的選擇。 –