zoukankan      html  css  js  c++  java
  • trigger dependencies

    有时候,会想知道某个表是不是会有一些trigger去更新它。 但是一般更新语句是写在trigger 内部,所以我不确定 dba_dependencies这个视图能不能存储这种依赖关系。 做个试验:

    创建两个表,t1 和 t2

    SQL> create table t1(val number);
    
    Table created.
    
    SQL> create table t2(val number);
    
    Table created.
    

      

    创建一个trigger test。 该trigger构建在t1上,每次t1插入一条记录。在t2中插入数字8。

    SQL> create trigger test
      2     before insert on scott.t1
      3  begin
      4     insert into scott.t2 values(8);
      5  end;
      6  /
    
    Trigger created.
    

      

    ok。 test是基于t1触发的,所以在dba_dependencies中查到他们的依赖关系是很明显的。那么对于t2能查到吗? 我们试一下:

    SQL> select owner,name,type,REFERENCED_OWNER,REFERENCED_NAME,REFERENCED_NAME from dba_dependencies where name='TEST';
    
    OWNER    NAME     TYPE     REFERENCED_OWNER   REFERENCED_NAME    REFERENCED_NAME
    -------- -------- -------- ------------------ ------------------ ------------------
    SYS      TEST     TRIGGER  SCOTT              T1                 T1
    SYS      TEST     TRIGGER  SCOTT              T2                 T2
    

      

    可以看到,都能查到。所以我们通过dba_dependencies是可以查到trigger和table的依赖关系的。即使这种依赖关系是在内部代码中。

  • 相关阅读:
    2 安装驱动出现异常
    1 Yoga3 系统装机总结.
    6 关于 Oracle NULL栏位和PL./SQL执行实验
    4 C#和Java 的比较
    3 委托、匿名函数、lambda表达式
    2 跨线程访问控件InvokeHelper类
    2 跨线程访问控件InvokeHelper类
    1 Winform 异步更新控件
    1 Winform 异步更新控件
    C# DataTable的詳細用法
  • 原文地址:https://www.cnblogs.com/kramer/p/3467518.html
Copyright © 2011-2022 走看看