假设我有 2 张桌子,EMPLOYEE
并且EMP_BAK
. 我需要为从员工中删除的所有数据创建一个备份表,即使是回滚的数据
我的触发器:
CREATE OR REPLACE TRIGGER emp_del_bak_trg
before delete ON employee
FOR EACH row
DECLARE
oldname department.department_name%type;
newname department.department_name%type;
BEGIN
INSERT INTO emp_bak
VALUES (:OLD.employee_id, :OLD.employee_name, :OLD.job
,:OLD.hire_date,:OLD.department_id, sysdate);
--commit;
end;
现在,如果我回滚,则数据将被删除;如果我取消注释commit
,删除时会出错。这个想法是保持记录并跟踪系统更新。
任何想法如何解决这个问题?