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

本文详细介绍如何在Oracle数据库中创建触发器,实现当scott.emp表数据被删除时,自动将被删记录存入日志表,包括触发器的创建、删除操作及验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值