GBase 8s
触发器介绍
触发器也称为
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)
触发时间
评论