【问题标题】:Oracle: SQL query to find all the triggers belonging to the tables?Oracle:SQL查询查找属于表的所有触发器?
【发布时间】:2011-02-04 09:53:10
【问题描述】:

如何找到属于一个表的所有触发器?

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    以下内容将独立于您的数据库权限:

    select * from all_triggers
    where table_name = 'YOUR_TABLE'
    

    根据您分配的数据库权限,以下备用选项可能有效,也可能无效:

    select * from DBA_TRIGGERS
    

    select * from USER_TRIGGERS
    

    【讨论】:

    • 您可能希望在该查询中添加“where table-name = 'FOOBAR'”以缩小答案范围。
    【解决方案2】:
    【解决方案3】:

    另一个有用的表是:

    SELECT * FROM user_objects WHERE object_type='TRIGGER';
    

    您也可以使用它来查询视图、索引等

    【讨论】:

    • 应该是 object_type = 'TRIGGER' 因为 Oracle 区分大小写,但 ALL_TRIGGERS 更好,因为它还显示触发器属于哪个表(在ALL_OBJECTS)
    • 确实,我已经编辑过了。我只是想强调 user_objects 表对其他事情很方便。
    【解决方案4】:

    使用Oracle documentation 并在浏览器中搜索关键字“trigger”。

    这种方法应该适用于其他元数据类型的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      相关资源
      最近更新 更多