一、触发器概念
触发器(TRIGGER):当某些与数据库有关的事件发生时,数据库应该采取的操作。通过触发器机制,用户可以定义、删除和修改触发器。DM 自动管理和运行这些触发器,从而体现系统的主动性,方便用户使用。触发器是一种特殊的存储过程,它在创建后就存储在数据库中。触发器的特殊性在于它是建立在某个具体的表或视图之上的,或者是建立在各种事件前后的,而且是自动激发执行的,如果用户在这个表上执行了某个 DML 操作(INSERT、DELETE、UPDATE),触发器就被激发执行。触发器是应用程序分割技术的一个基本组成部分,它将事务规则从应用程序的代码中移到数据库中,从而可确保加强这些事务规则并提高它们的性能。
二、各类触发器
跨模式创建触发器:可授予对应用户 create any trigger权限,需要打开ENABLE_DDL_ANY_PRIV=1参数;默认情况下,该参数是关闭的;ENABLE_DDL_ANY_PRIV:默认为0,动态,系统级 ;是否可以授予和回收DDL相关的ANY系统权限。0:否;1:是
查询语句select * from v$dm_ini where para_name like ‘%DDL%’;达梦触发器系统表存于SYS.DBA_TRIGGERS和SYS.USER_TRIGGERS
以下触发器为语句级触发器;触发时机为在执行触发语句之后激发;
触发条件:更新表TEST.STUDENT中ID,XM两列的值之后,会触发触发器体执行。
以下触发器为元组级触发器;触发时机为在执行触发语句之前激发;
触发条件:删除PERSON.PERSON表中的数据,会触发触发器体执行。
通过查找ID值update更新其他值
update TEST.STUDENT set XM='SJ' where ID='16';
触发器激发顺序:
1.如果有语句级前触发器的话,先运行该触发器;
2.对于受语句影响每一行:
文章
阅读量
获赞