一、触发器的定义

触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,会激活促发其执行相应的操作。达梦数据库的触发器包括:库级别、表级别、模式级别、视图级别。下面主要讲解下库级别、表级别的触发器。

二、触发器的创建案例

1、库级触发器的创建。对数据库进行drop操作,创建触发器,把操作信息进行记录。

(1)我们先创建一个TB_CHANGE表触发时进行信息记录的表。表不要创建在SYSDBA下,我们创建在DMHR这个模式下。

CREATE TABLE TB_CHANGE(USER_NAME VARCHAR(50),OPERATE_TIME DATETIME);

如下图:

达梦数据库 dem 达梦数据库 date_add函数_达梦数据库管理工具触发器


(2)创建触发器

达梦数据库 dem 达梦数据库 date_add函数_达梦数据库管理工具触发器_02

(3)填写触发器名称,选择需要触发的事件,如下图:

达梦数据库 dem 达梦数据库 date_add函数_达梦数据库触发器创建_03


(4)编写触发体,点击【确定】按钮,完成触发器的创建。

达梦数据库 dem 达梦数据库 date_add函数_创建表_04

(5)我们进行测试,新建一张测试表,然后查看TB_CHANGE是否有记录信息。如下图:

达梦数据库 dem 达梦数据库 date_add函数_触发器_05


达梦数据库 dem 达梦数据库 date_add函数_触发器_06


2、案例:创建表级别的触发器,在DMHR模式下当修改EMPLOYEE的电话号码时,触发记录旧的电话号码及新的电话号码。

在TB_CHANGE表中增加旧的电话号码列及新的电话号码列

达梦数据库 dem 达梦数据库 date_add函数_触发器_07


(1)、创建表级别触发器

达梦数据库 dem 达梦数据库 date_add函数_达梦数据库触发器创建_08

(2)选择要触发的事件、触发的表、触发的字段及触发的级别,如下图:

达梦数据库 dem 达梦数据库 date_add函数_达梦数据库管理工具触发器_09


旧行别名、新行别名建议大写,本人用小写出错。

(3)编写触发体

达梦数据库 dem 达梦数据库 date_add函数_创建表_10


(4)、修改EMPLOYEE表,测试触发器是否被触发

达梦数据库 dem 达梦数据库 date_add函数_达梦数据库触发器创建_11


达梦数据库 dem 达梦数据库 date_add函数_达梦数据库触发器创建_12


看到表中已经记录了新、旧电话号码,表级别触发器创建成功。