Oracle触发器部分

2025-01-19 13:03

一、触发器的概念

触发器是一个特殊的存储过程。是一个与表相关联的、存储的PL/SQL程序。

作用:每当一个特定的数据操作语句(insert、update、delete,注意没有select)在指定的表上发出时,oracle自动地执行触发器中定义的语句序列。

二、触发器的类型

  • 语句级的触发器

在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行。

语句级触发器针对表,只会触发一次

  • 行级的触发器

触发语句作用的每一条记录都被触发。在行级触发器中使用:old和:new伪记录变量,识别值的状态。如果有for each row就表示行级触发器。

insert into emp10 select * from emp where deptno=10;

会查出3条记录。

行级触发器针对行,有多少条记录就触发多少次。

三、第一个触发器

每当成功插入新员工后,自动打印一句话,"成功插入新员工"。单词trigger

例如:

create trigger saynewemp
after insert
on emp
declare
begin
	dbms_output.put_line('成功插入新员工');
end;
/

四、触发器的具体应用场景

(1)复杂的安全性检查 --比如周末不允许操作数据库

(2)数据的确认 --涨后的工资大于涨前的工资

(3)数据库审计 --跟踪表上所做的数据操作,什么时间什么人操作了什么数据,操作的人是什么。基于值的审计

(4)数据的备份和同步 --异地备份,把主数据的数据自动同步到备数据库中

五、创建触发器的语法

create [or replace] trigger 触发器名
{before|after}
{delete|insert|update [of 列名]}
on 表名
[for each row [when 条件]]
plsql块

六、触发器的案例

  • 触发器案例一:禁止在非工作时间插入数据

  • 触发器案例二:涨工资不能越涨越少 :old:new的使用要注意。

  • 触发器案例三:创建基于值的触发器

  • 触发器案例四:数据库的备份和同步 --利用触发器实现数据的同步备份,多用于异地分布式数据库

还能使用快照备份,快照备份是异步备份,而触发器是同步备份,没有延时的

相关文章
热点文章
精彩视频
Tags

在线访客: 今日访问量: 昨日访问量: 总访问量:

×
请扫码支付

扫码支付后自动跳转查看