数据库12-触发器与游标
触发器
概念
触发器
- 一组SQL语句
- 当插入,更改,删除,事件发生的时候,触发器自动执行
- 用以维护数据完整性,或者其他数据处理工作
- 属于动态完整性约束
分类
根据事件分类
- DML触发器:发生数据操作事件时调用,包括
INSERT UPDATE DELATE
- DDL触发器:发生数据定义事件调用,包括
CREATE DROP DELETE
根据发生时间和操作分类 - AFTER触发器:是最常见的触发器,在事件执行之后检查触发条件,若满足则调用触发器
- BEFORE触发器:在事件执行之前检查触发条件,若满足则调用触发器
- INSTEAD OF触发器:一般用于视图,事件执行之前检查触发条件,若满足,则用触发器定义的操作代替原来的数据更新操作
根据执行粒度分类 - 语句级触发器:执行完一条SQL语句,是DBMS的默认值,关键字为
FOR EA CH STATEMENT
- 元祖级触发器:在每一行触发
FOR EACH ROW
触发器操作
创建触发器
1 | Create|Replace Trigger <触发器名> |
删除触发器
1 | DROP Trigger <触发器名> |
使用触发器可以容易实现参照完整性;
游标
定义
声明游标DECLARE
打开游标OPEN
从一个游标中逐条获取并处理记录信息FETCH
关闭游标CLOSE
以下是一个例子:
1 | Open GPA36; |