【问题标题】:How to call the Triggers in user deefined way?如何以用户定义的方式调用触发器?
【发布时间】:2010-12-29 05:02:13
【问题描述】:

我创建了包含 EmpNo、EName、EDesignation 作为其字段的 Employee 表。我还创建了 3 个触发器,即 Trigger_1、Trigger_2 和 Trigger_3。所有触发器都是 语句级触发器 并在表中完成更新后触发。现在我想要执行更新语句时触发触发器的以下顺序。

顺序是

触发器_3, 触发器_1, 触发器_2

谁能告诉我如何以用户定义的方式触发触发事件?我使用的是 Oracle 9i

【问题讨论】:

    标签: oracle triggers


    【解决方案1】:

    触发器评估顺序

    引用自 Oracle 文档:

    虽然任何触发器都可以运行 在线操作顺序 或通过调用程序,使用 相同类型的多个触发器 通过以下方式增强数据库管理 允许模块化安装 有触发器的应用程序 相同的表。

    Oracle 数据库执行所有触发器 执行前同类型 不同类型的触发器。如果你 有多个相同的触发器 在单个表上键入,然后是 Oracle 数据库选择任意顺序 执行这些触发器。

    每个后续触发器都会看到 先前被解雇的人所做的更改 触发器。每个触发器都可以看到旧的 和新的价值观。旧值是 原始值和新值 是当前值,由设置 最近触发的 UPDATE 或 INSERT 触发。

    确保多次触发 动作按特定顺序发生,您 必须将这些行动整合到一个 单个触发器(例如,通过 触发调用一系列 程序)。

    另见http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm

    【讨论】:

      【解决方案2】:

      有一个触发器与三个的内容。

      如果出于模块化、可重用性的原因……你不能创建三个存储过程并在单个触发器中一个一个地调用它们。

      【讨论】:

        【解决方案3】:

        升级到11g可以定义trigger execution order

        【讨论】:

          猜你喜欢
          • 2011-09-28
          • 2013-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-17
          • 2019-08-12
          • 2019-06-11
          相关资源
          最近更新 更多