Oracle trigger simple table instance
Create table dwuser. T1 (OLD_VALUE NUMBER (7,2 ),
NEW_VALUE NUMBER (7,2 ),
UP_DATE DATE );
Create table dwuser. EMP (empno number (4 ),
ENAME VARCHAR2 (10 BYTE ),
JOB VARCHAR2 (9 BYTE ),
Mgr number (4 ),
Hiredate date,
Sal number (7,2 ),
Comm number (7, 2 ),
Deptno number (2 ));
-- Insert data by yourself;
Create or replace trigger dwuser. TRG1
After insert or update or delete
OF sal on dwuser. EMP
FOR EACH ROW
BEGIN
If inserting then
Insert into T1 VALUES (1,: NEW. SAL, sysdate); -- 1 indicates the inserted data
Else if updating then insert into T1 VALUES (: OLD. SAL,: NEW. SAL, sysdate); -- Update record
Else insert into T1 VALUES (: OLD. SAL, 2, sysdate); -- 2 indicates the deleted data
End if;
End if;
END;
Result:
1601 1602 16:40:40
1251 1252 16:40:40
2976 2977 16:40:40
1301 1302 16:40:40
1 788 16:43:48
1602 2 16:45:26