达梦数据库学习之触发器

       1.概述:
       触发器(TRIGGER)定义当某些与数据库有关的事件发生时,数据库应该采取的操作。通过触发器机制,用户可以定义、删除和修改触发器。DM 自动管理和运行这些触发器,从而体现系统的主动性,方便用户使用。
       触发器是一种特殊的存储过程,它在创建后就存储在数据库中。触发器的特殊性在于它是建立在某个具体的表或视图之上的,或者是建立在各种事件前后的,而且是自动激发执行
的,如果用户在这个表上执行了某个 DML 操作(INSERT、DELETE、UPDATE),触发器就被激发执行。触发器常用于自动完成一些数据库的维护工作。例如,触发器可以具有以下功能:
       1).可以对表自动进行复杂的安全性、完整性检查;
       2).可以在对表进行 DML 操作之前或者之后进行其它处理;
       3).进行审计,可以对表上的操作进行跟踪;
       4).实现不同节点间数据库的同步更新。
       触发器与存储模块类似,都是在服务器上保存并执行的一段 DMSQL 程序语句。不同的是,存储模块必须被显式地调用执行,而触发器是在相关的事件发生时由服务器自动隐式地激发。触发器是激发它们的语句的一个组成部分,即直到一个语句激发的所有触发器执行完成之后该语句才结束,而其中任何一个触发器执行的失败都将导致该语句的失败,触发器所做的任何工作都属于激发该触发器的语句。
       触发器为用户提供了一种自己扩展数据库功能的方法。可以使用触发器来扩充引用完整性,实施附加的安全性或增强可用的审计选项。关于触发器应用的例子有:
       1).利用触发器实现表约束机制(如:PRIMARY KEY、FOREIGN KEY、CHECK 等)
无法实现的复杂的引用完整性;
       2).利用触发器实现复杂的事务规则(如:想确保薪水增加量不超过 25%);
       3).利用触发器维护复杂的缺省值(如:条件缺省);
       4).利用触发器实现复杂的审计功能;
       5).利用触发器防止非法的操作。
       触发器是应用程序分割技术的一个基本组成部分,它将事务规则从应用程序的代码中移到数据库中,从而可确保加强这些事务规则并提高它们的性能。DM 提供了四种类型的触发器:
       1.表级触发器:基于表中的数据进行触发;
       2.事件触发器:基于特定系统事件进行触发;
       3.时间触发器:基于时间而进行触发。
       定义:
       当某些与数据库有关的事件发生时,数据库应该采取的操作。这些事件包括全局事件、数据库下某个模式、模式下的某个基表上的 INSERT、DELETE和UPDAE操作。DM自动管理和运行触发器。触发器是在相关事件发生时由服务器自动的隐式激发。
       分类:
               表触发器:对表里数据操作引发的数据库的触发。
               事件触发器:对数据库对象操作引起的数据库触发
               时间触发器:一种特殊的事件触发器
       注意:
               触发器在备库上是不会被触发的;触发器顶一遍领必须以DECLARE开头。
       相关应用:
       1). 利用触发器实现表约束机制 (如: PRIMARY KEY、FOREIGN KEY 、CHECK等)无法实现的复杂引用完整性;
       2). 利用触发器实现复杂的事务规则(如:想确保薪水增加量不超过25%);
       3). 利用触发

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值