Skip navigation

5. példa

DEMO adatbázis (EMP/DEPT táblák)

Ha saját gépen dolgozol, az alábbi feladathoz letöltheted a DEMO adatbázist, amely létrehozza az EMP és DEPT táblákat.

empauditlog

Hozzunk létre egy új táblát, ahol a módosításokat fogjuk letárolni!

CREATE TABLE empauditlog ( audit_date DATE, audit_user VARCHAR2(20), audit_desc VARCHAR2(20));

Hozzuk létre a triggert!

CREATE OR REPLACE TRIGGER emp_audit_trig
AFTER INSERT OR UPDATE OR DELETE
ON emp
DECLARE
     v_action VARCHAR2(20);
BEGIN
     IF INSERTING THEN
          v_action := 'Added employee(s)';
     ELSIF UPDATING THEN
          v_action := 'Updated employee(s)';
     ELSIF DELETING THEN
          v_action := 'Deleted employee(s)';
     END IF;
     INSERT INTO empauditlog VALUES (SYSDATE, USER, v_action);
END;

Hajtsunk végre pár műveletet!

INSERT INTO emp VALUES (9001,'SMITH','ANALYST',7782,SYSDATE,NULL,NULL,10);
INSERT INTO emp VALUES (9001,'SMITH','ANALYST',7782,SYSDATE,NULL,NULL,10);
UPDATE emp SET sal = 4000.00, comm = 1200.00 WHERE empno IN (9001, 9002);
DELETE FROM emp WHERE empno IN (9001, 9002);

Kérdezzük le az EMPAUDITLOG tábla tartalmát!

SELECT * FROM empauditlog;

Mit csinál a trigger?