PL/SQL触发器简介、语法、功能、分类

触发器简介

在这里插入图片描述

触发器语法

不同类型触发器用到的所有都在这里

CREATE [OR REPLACE] TRIGGER trigger_name
[BEFORE | AFTER]    --触发器的触发时间,在DML操作之间就BEFORE,在DML操作之后就AFTER触发
[INSTEAD OF]        --替代触发器,对于视图操作所定义的触发器类型
[INSERT | UPDATE | UPDATE OF列名称 | DELETE]    --触发的事件,可以是数据表的增加INSERT,更新UPDATE,删除DELETE或者部分更新
ON [表名称 | 视图 | DATABASE | SCHEMA ]         --指的是触发器的触发对象,可以是表,视图,数据库,模式(用户)
REFERENCING [OLD AS 标记][NEW AS标记][PARENT AS标记]    --对于":old",":new",":parent"这3个标识定义别名
[FOR EACH ROW]          --定义行级触发器。如果不写,表示定义表级(语句级)触发器
[FOLLOWS 触发器名称]     --配置多个触发器执行先后次序
[DISABLE]                --一个触发器,建立之后默认是启用状态,可以使用此选项,将其定义为禁用
[WHEN 触发条件]          --当满足指定条件执行触发器操作
[DECLARE] 
	[PRAGMA AUTONOMOUS_TRANSACTION;]    --自治事务声明
BEGIN
END; 

在这里插入图片描述
在编写触发器时,要注意:
1)触发器的代码不能超过32KB,如果真的超过32KB,可以在触发器中使用CALL语句调用存储过程
2)触发器代码只能包含SELECT、INSERT、UPDATE、DELETE,而不能包含DDL语句如CREATE、ALTER、DROP,也不能包含事务控制语句如COMMIT、ROLLBACK、SAVEPOINT。
3) 尽管触发器可以实现较多的功能,但是不过过度使用触发器,否则会导致系统变得难以维护,比如连锁触发,比如别人不知道这里有个触发器等等。

触发器功能

  • 允许/限制对表、视图的操作
  • 自动生成派生列
  • 强制数据的一致性
  • 强制复杂的完整性约束条件
  • 提供审计和日志记录
  • 防止无效的事务处理
  • 启用复杂的业务逻辑

其他触发器语法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值