实例:建立一个触发器,当scott.emp被删除一条记录时,把被删除记录写到删除日志里面去

实例:建立一个触发器,当scott.emp被删除一条记录时,把被删除记录写到删除日志里面去。

--创建一个存放删除记录的表,此表此时为空表
CREATE TABLE del_emp AS SELECT * FROM scott.emp WHERE 1=2; 
--创建触发器
CREATE OR REPLACE TRIGGER myTrigger
BEFORE DELETE --指定触发时机为删除操作之前
ON scott.emp
FOR EACH ROW   --说明创建的是行级触发器
--WHEN(:old.depNo<>10)
BEGIN
  --将要删除的数据插入到日志记录表中,以供监督使用
  INSERT INTO del_emp VALUES(:old.empNo,:old.ename,:old.job,:old.mgr,:old.hiredate,:old.sal,:old.comm,:old.deptNo);
END;
DELETE FROM scott.emp WHERE empNo=7900;--删除一条记录
SELECT * FROM scott.emp;--此时记录已删除
SELECT * FROM del_emp;--被删除的记录被记录在日志表中

 

你可能感兴趣的:(Oracle_实例)