Oracle 触发器 简单表实例


Oracle 触发器 简单表实例

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) );
 --数据自己插入;
 
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代表插入的数据
  else if updating then INSERT INTO T1 VALUES(:OLD.SAL,:NEW.SAL,sysdate);--更新的记录    
             else INSERT INTO T1 VALUES(:OLD.SAL,2,sysdate); --2代表删除的数据  
     end if;
end if;
END;
 
结果:
1601 1602 2011/12/23 16:40:40
1251 1252 2011/12/23 16:40:40
2976 2977 2011/12/23 16:40:40
1301 1302 2011/12/23 16:40:40
1       788 2011/12/23 16:43:48
1602  2    2011/12/23 16:45:26

相关内容