Skip to content

USER_TRIGGERS

功能描述

user_triggers系统视图用于存储当前用户所拥有的触发器信息

字段说明

字段名类型说明
DB_IDOID_TYPE库ID
SCHEMA_IDOID_TYPE模式ID
USER_IDOID_TYPE拥有者ID
OBJ_IDOID_TYPE触发对象的ID
TRIG_IDOID_TYPE触发器ID
TRIG_NAMEVARCHAR触发器名
TRIG_TIMEINTEGER触发时机
TRIG_EVENTINTEGER触发事件
TRIG_TYPEINTEGER触发器类型
TRIG_CONDVARCHAR触发条件表达式
LANGUAGECHAR过程语言类别
DEFINECLOB过程定义的文本
CREATE_TIMEDATETIME创建时间
ENABLEBOOLEAN是否使能
VALIDBOOLEAN是否有效
IS_SYSBOOLEAN是否系统内建
COMMENTSVARCHAR注释信息
RESERVED1VARCHAR保留字段
RESERVED2VARCHAR保留字段

TRIG_EVENT

对象名编号
INSERT1
UPDATE2
INSERT OR UPDATE3
DELETE4
INSERT OR DELETE5
UPDATE OR DELETE6
INSERT OR UPDATE OR DELETE7
LOGON8
LOGOFF16

TRIG_TYPE

对象名编号
FOR EACH ROW1
FOR STATEMENT2

TRIG_TIME

对象名编号
BEFORE1
INSTEAD2
AFTER4

示例

  • 查询触发器的定义文本、触发时间、触发类型等相关信息

    sql
    SQL> CREATE TABLE tritb_info(deptno INT);
    
    SQL> CREATE OR REPLACE TRIGGER tri_info BEFORE INSERT ON tritb_info
    FOR EACH ROW
    WHEN(deptno>=50)
    BEGIN
    RAISE_APPLICATION_ERROR(-20000,'部门号超出规定');
    END;
    /
    
    SQL> SELECT * FROM user_triggers WHERE trig_name='TRI_INFO';
    
    DB_ID | SCHEMA_ID | USER_ID | OBJ_ID | TRIG_ID | TRIG_NAME | TRIG_TIME | TRIG_EVENT | TRIG_TYPE | TRIG_COND | LANGUAGE | DEFINE | CREATE_TIME | ENABLE | VALID | IS_SYS | COMMENTS | RESERVED1 | RESERVED2 | 
    ------------------------------------------------------------------------------
    1 | 1 | 1 | 1048601 | 1048602 | TRI_INFO| 1 | 1 | 1 | ("DEPTNO") >= (50)| PLSQL| CREATE OR REPLACE TRIGGER tri_info BEFORE INSERT ON tritb_info
    FOR EACH ROW
    WHEN(deptno>=50)
    BEGIN
    RAISE_APPLICATION_ERROR(-20000,'部门号超出规定');
    END;| 2022-05-10 17:37:18.263 AD | T | T | F | <NULL>| <NULL>| <NULL>|
  • 查询触发器拥有者、所属模式和所属库

相关系统表

  • sys_databases
  • sys_schemas
  • sys_users
  • sys_depends