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

版权声明:原创内容是本人学习总结,仅限学习使用,禁止用于其他用途。如有错误和不足,欢迎评论指正补充。 https://blog.csdn.net/qian_qian_123/article/details/82872882

实例:建立一个触发器,当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;--被删除的记录被记录在日志表中

猜你喜欢

转载自blog.csdn.net/qian_qian_123/article/details/82872882
今日推荐