定义:当某些与数据库有关的事件发生时,数据库应该采取的操作,通过触发器机制,用户可以定义、删除和修改触发器。
触发器是应用程序分割技术的一个基本组成部分,它将事务规则从应用程序的代码中移到数据库中,从而可确保加强这些事务规则并提高它们的性能。
DM 提供了三种类型的触发器:
表级触发器:基于表中的数据进行触发;
事件触发器:基于特定系统事件进行触发;
时间触发器:基于时间而进行触发。
创建触发器
触发器语法格式如下:
CREATE [OR REPLACE] TRIGGER 触发器名[WITH ENCRYPTION]
BEFORE|AFTER|INSTEAD OF
DELETE|INSERT|UPDATE [OF 列名]
ON 表名
[FOR EACH ROW [WHEN 条件]]
BEGIN
DMSQL 程序语句
END;
示例
创建一个名为“XG”的触发器监视用户对表 EMP 中JOB_ID列的数据所进行的修改操作,如果有这样的操作,则打印相应的信息。
CREATE OR REPLACE TRIGGER XG
BEFORE update of JOB_ID
ON DMHR.emp
BEGIN
PRINT '您正在对表 DMHR.EMP中的JOB_ID列 进行修改操作';
END;
如果在EMP表中修改JOB_ID列数据则激发这个触发器,例如
(修改工资为12758的员工ID修改为999)
update DMHR.EMP set JOB_ID = '999' where SALARY ='12758';
删除触发器
DROP TRIGGER 触发器名;
禁用触发器
ALTER TRIGGER 触发器名 DISABLE;
启用触发器
ALTER TRIGGER 触发器 ENABLE;