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的依赖关系的。即使这种依赖关系是在内部代码中。

  • 相关阅读:
    ARP 协议
    3GPP 5G UPF
    OpenStack v.s. Kubernetes
    C#- FTP递归下载文件
    C#- WinForm获取 当前执行程序路径的几种方法
    C#- 布署WinForm程序
    Delphi- 连接MySQL数据库BDE
    Delphi- 内置数据库的使用例子BDE
    CSS- 兼容样式记录
    Delphi- DLL操作
  • 原文地址:https://www.cnblogs.com/kramer/p/3467518.html
Copyright © 2011-2022 走看看