暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

数据库对象管理Oracle模式查看触发器信息

2023-04-11
1302

触发器详细信息可以通过相关字典视图来查看,包括触发器的名称、类型、作用的表等。

OceanBase 数据库支持如下触发器相关字典视图:

  • USER_TRIGGERS:描述当前用户拥有的触发器。

  • DBA_TRIGGERS:描述数据库中的所有触发器。

  • ALL_TRIGGERS:描述当前用户拥有的表上触发器与描述。如果用户具有 CREATE ANY TRIGGER 权限,则该视图描述数据库中的所有触发器。

示例 1

列出当前用户所有的触发器,包括类型、状态和作用的表及其用户。

obclient> SELECT TRIGGER_NAME,TRIGGER_TYPE,TRIGGERING_EVENT,TABLE_OWNER,TABLE_NAME,
               STATUS FROM USER_TRIGGERS;
+----------------+-----------------+------------------+-------------+------------+---------+
| TRIGGER_NAME   | TRIGGER_TYPE    | TRIGGERING_EVENT | TABLE_OWNER | TABLE_NAME | STATUS  |
+----------------+-----------------+------------------+-------------+------------+---------+
| DEL_NEW_REGION | BEFORE EACH ROW | DELETE           | SYS         | REGIONS    | ENABLED |
+----------------+-----------------+------------------+-------------+------------+---------+
1 row in set

示例 2

查看触发器 DEL_NEW_REGION 的定义内容。

obclient> SELECT TRIGGER_BODY FROM USER_TRIGGERS WHERE TRIGGER_NAME='DEL_NEW_REGION'\G
*************************** 1. row ***************************
TRIGGER_BODY: TRIGGER del_new_region
   BEFORE DELETE ON regions
   FOR EACH ROW
   WHEN (old.region_id >3)
BEGIN
   INSERT INTO reg_his(region_id , region_name )
       VALUES( :old.region_id, :old.region_name );
END
1 row in set

OceanBase 数据库用户还可以通过 DBA_SOURCEUSER_SOURCE 和 DBA_OBJECTS 视图查看触发器相关信息。查询语句示例如下:

SELECT NAME FROM USER_SOURCE WHERE TYPE='TRIGGER' GROUP BY NAME; 

SELECT NAME FROM DBA_SOURCE WHERE TYPE='TRIGGER';

SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE='TRIGGER' AND OWNER='username';
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论