失效链接处理 |
Gbase 8s触发器介绍 PDF 下载
本站整理下载:
相关截图:
主要内容:
触发器也称为 Trigger, 本质上是一种存储过程. 在进行DML/DQL操作时, 触发器中的语句被数据库服务器自动执行. 触发器可用于维护多表之间的数据一致性.
1. 触发器的优点
触发器的主要优点在于其自动响应的特性, 对表的增/删/改操作都可触发相应触发器. 触发器可起到约束条件的作用, 但其功能更为强大, 能够实现更为复杂的操作. 但需要注意的是, 触发器虽然功能强大, 但如果对其过分依赖, 则会导致数据库过于复杂, 进而难以维护; 对性能也会产生影响.
2. 触发器的组成
触发器由以下3部分组成:
1) 触发事件
即, 插入/修改/删除等操作.
2) 触发条件
触发器被激活后, 将对触发条件进行测试, 如果条件成立, 则执行预定义动作, 否则
不做响应.
3) 触发动作
在满足触发条件的情况下, 预定义的动作被 8s服务器自动执行. 预定义动作可以用
于防止特定事件的发生(如: 撤销触发事件所作的更改); 预定义动作还可以是与触发
事件不相关的操作.
3. 触发器的创建
8s的触发器创建语法如下:
CREATE TRIGGER <触发器名> <触发事件> ON <目标表>
<触发时间>
WHEN <触发条件>
<触发动作>
1) 触发器名
只有目标表的创建者或具有DBA权限的用户可以创建此表上的触发器.
一张表或视图上, 可以创建多个关联增/删/改/查操作的触发器.
2) 触发事件
触发事件定义了激活触发器的SQL语句类型. 触发事件有4类: INSERT, UPDATE, DELETE,
SELECT. 在UPDATE/SELECT后,可以使用"OF <属性列表>"从句指定触发列;
DELETE/INSERT只支持整行触发.
3) 目标表
当在目标表上发生触发事件时, 定义在该表上的触发器被激活.
4) 触发时间
8s支持3种触发时间:
1> BEFORE: 在触发时间执行之前, 如果满足 WHEN条件, 则先执行触发器定义的动作.
2> AFTER: 在触发时间执行之后, 如果满足 WHEN条件, 则执行触发器定义的动作.
3> FOR EACH ROW: 在触发时间执行过程中, 对触发事件涉及的各行, 执行触发器定义
的动作.
5) 触发条件
WHEN从句用于定义触发条件, 可以为任意条件表达式. 只有当触发条件为为真时, 触
发动作才被执行, 否则不做动作. 如果省略触发条件, 则只要触发器被激活, 触发动作
即被执行.
6) 触发动作
触发动作在触发器被激活后执行. 触发动作可以为SQL语句或对存储过程/函数的调用.
可以通过NEW关键字引用INSERT/DELETE事件之后的新值; OLD关键字引用
INSERT/DELETE事件之前的旧值.
|