- CREATE OR REPLACE TRIGGER audit-table-DEPT AFTER
- INSERT OR UPDATE OR DELETE ON DEPT FOR EACH ROW
- declare
- audit_data DEPT$audit%ROWTYPE;
- begin
- if inserting then audit_data.change_type := 'I';
- elsif updating then audit_data.change_type :='U';
- else audit_data.change_type := 'D';
- end if;
- audit_data.changed_by := user;
- audit_data.changed_time := sysdate;
- case audit_data.change_type
- when 'I' then
- audit_data.DEPTNO := :new.DEPTNO;
- audit_data.DNAME := :new.DNAME;
- audit_data.LOC := :new.LOC;
- else
- audit_data.DEPTNO := :old.DEPTNO;
- audit_data.DNAME := :old.DNAME;
- audit_data.LOC := :old.LOC;
- end case;
- insert into DEPT$audit values audit_data;
- end;
Trigger created.
(i) What would happen when the trigger is fired?
(ii) Discuss how this can affect normal database operations.