暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

数据库对象管理Oracle模式管理触发器概述

2023-04-06
258

触发器是 OceanBase 数据库中为 Oracle 租户提供的功能,它类似过程和函数,是包含声明、执行和异常处理过程的 PL 块。触发器基于特定事件被执行,可以指定触发器是在事件之前还是之后触发,以及触发器是针对单个事件还是被事件执行影响的某行数据。

触发器是一个独立的对象,当某个事件发生时自动地隐式运行,而且触发器不能接收参数。这里的事件指的是对数据库的表进行的 INSERT、UPDATE 及 DELETE 操作。

注意

OceanBase 数据库 V2.2.7x 及以下版本仅支持表上的行级触发器。

一个简单的触发器的触发时机有四个点:

  • 在事件执行之前(语句级别的 BEFORE 触发器)

  • 在事件执行之后(语句级别的 AFTER 触发器)

  • 在每行被事件执行影响之前(行级的 BEFORE 触发器)

  • 在每行被事件执行影响之后(行级的 AFTER 触发器)

一个 DML 语句可能会触发多个简单的触发器,触发执行顺序是:语句级 BEFORE 触发器 -> 行级 BEFORE 触发器 -> 行级 AFTER 触发器 -> 语句级 AFTER 触发器。同一类型的触发器的执行顺序是不确定的,当前暂不支持指定触发器的执行顺序。

触发器可以是简单的,也可以是组合的。OceanBase 数据库当前主要支持以下几种 DML 触发器:

  • 行级触发器

  • 语句级触发器

  • INSTEAD OF 触发器

    INSTEAD OF 触发器创建在不可编辑视图上,可以用于更新视图。

  • 组合触发器

    一个组合触发器中可以包含行前、行后、语句前、语句后四种触发事件中的一到四种或只包含一个 INSTEAD OF 触发事件。

最后修改时间:2023-04-09 17:11:20
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论