【问题标题】:Apply one trigger on many tables in Oracle在 Oracle 中的多个表上应用一个触发器
【发布时间】:2017-08-21 14:12:13
【问题描述】:

我在 Solaris 平台上使用 Oracle 11g。我创建了一个触发器,它在测试表中为 ORDERS 表上的每个插入/更新/删除插入一个条目。如何对 100 个表使用相同的触发器?我是否需要创建 100 个触发器,即每个要计算 DML 操作的表上的一个触发器?

【问题讨论】:

  • Is this for auditing? 您不能在多个表上为 DML 使用相同的触发器,但您可以生成代码来创建所有触发器。但首先检查你没有重新发明轮子......
  • 这取决于您的要求。在大多数情况下,最简单快捷的方法是创建 100 个触发器。但是还有另外两个选择。 Oracle 审计和 LogMiner。触发器的难度级别是 1 ,审计 10 ,logminer 1000 :)

标签: sql oracle oracle11g triggers


【解决方案1】:

一个触发器只能属于一个表。因此,您的情况需要一百个触发器。根据您的描述,它们似乎都采用相同的形式,因此您可以使用数据字典生成 CREATE TRIGGER 语句。

如果处理很复杂,您应该将逻辑包装在存储过程中并从(生成的)触发器中调用它。

【讨论】:

    猜你喜欢
    • 2011-01-16
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    相关资源
    最近更新 更多