【DM8】表触发器在不同场景下的使用!

1 触发器基本概念

  • DM 是一个具有主动特征的数据库管理系统,主动特征包括约束机制和触发器机制。约束机制主要用于对某些列进行有效性和完整性验证。
  • 触发器(TRIGGER)定义当某些与数据库有关的事件发生时,数据库应该采取的操作。常用于自动完成一些数据库的维护工作。
  • 触发器的特殊性在于它是建立在某个具体的表或视图之上的,或者是建立在各种事件前后的,而且是自动激发执行的。
  • 触发器类型
    (1)表触发器,对表中数据操作引发的触发
    (2)事件触发器:对数据库对象操作引起的触发
    (3)时间触发器:基于时间触发

2 表触发器

2.1 触发动作
  • 触发表级触发器的触发动作:insert,delete,update操作

(1)update
在这里插入图片描述
更新表中name,触发该触发器
在这里插入图片描述
(2)insert,delete
在这里插入图片描述
添加 或 删除表中数据,触发该触发器
在这里插入图片描述

2.2 触发级别
  • 触发器级别:
    (1)元组级(行级)
    对触发命令所影响的每一条记录都激发一次。(常用于数据审计、完整性检查等)
    (2)语句级
    语句级触发器对每个触发命令执行一次。(一般用于对表上执行的操作类型引入附加的安全措施)

(1)元组级(for each row)
在这里插入图片描述
影响了两条记录,打印两次
在这里插入图片描述
(2)语句级(for each statement)
在这里插入图片描述
影响了两条记录,但只打印一次:
在这里插入图片描述

2.3 触发时机
  • 可以通过两种方式指定触发时机:
    (1)before / after
    选择触发动作前 / 后运行触发器
    (2)instead of
    选择动作触发时,替换原始操作。(允许建立在视图上,且只支持行级触发)

(1)before
在这里插入图片描述
插入id为12的数据(在insert前执行id +1,所以不会违反唯一性约束)
在这里插入图片描述
在这里插入图片描述
(2)after
在这里插入图片描述
插入一条数据(在insert后将插入id及操作类型记录到t_temp表)
在这里插入图片描述
在这里插入图片描述
(3)instead of
在这里插入图片描述
更新一条数据(更新操作会替换成触发器里的操作)
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值