ALL_TRIGGERS
📄字数 1.3K
👁️阅读量 加载中...
功能描述
ALL_TRIGGERS系统视图用于存储和管理系创建的触发器信息。
字段说明
序号 | 字段名 | 类型 | 说明 | V11 | V12 |
---|---|---|---|---|---|
0 | DB_ID | INTEGER | 库ID | √ | √ |
1 | SCHEMA_ID | INTEGER | 模式ID | √ | √ |
2 | USER_ID | INTEGER | 属主ID | √ | √ |
3 | OBJ_ID | INTEGER | 触发对象的ID | √ | √ |
4 | TRIG_ID | INTEGER | 触发器ID | √ | √ |
5 | TRIG_NAME | VARCHAR | 触发器名 | √ | √ |
6 | TRIG_TIME | INTEGER | 触发时机 | √ | √ |
7 | TRIG_EVENT | INTEGER | 触发事件 | √ | √ |
8 | TRIG_TYPE | INTEGER | 触发器类型 | √ | √ |
9 | TRIG_COND | VARCHAR | 触发条件表达式 | √ | √ |
10 | LANGUAGE | CHAR | 过程语言类别 | √ | √ |
11 | DEFINE | CLOB | 过程定义的文本 | √ | √ |
12 | CREATE_TIME | DATETIME | 创建时间 | √ | √ |
13 | ENABLE | BOOLEAN | 是否使能 | √ | √ |
14 | VALID | BOOLEAN | 是否有效 | √ | √ |
15 | IS_SYS | BOOLEAN | 是否系统内建 | √ | √ |
16 | COMMENTS | VARCHAR | 注释信息 | √ | √ |
17 | RESERVED1 | VARCHAR | 保留字段 | √ | √ |
18 | RESERVED2 | VARCHAR | 保留字段 | √ | √ |
TRIG_EVENT
ID | 对象名 | 含义 |
---|---|---|
1 | INSERT | 插入时触发 |
2 | UPDATE | 更新时触发 |
3 | INSERT OR UPDATE | 插入或更新时触发 |
4 | DELETE | 删除时触发 |
5 | INSERT OR DELETE | 插入或删除时触发 |
6 | UPDATE OR DELETE | 更新或删除时触发 |
7 | INSERT OR UPDATE OR DELETE | 插入或更新或删除时触发 |
8 | LOGON | 登录数据库时触发 |
TRIG_TYPE
ID | 对象名 | 含义 |
---|---|---|
1 | FOR EACH ROW | 行级触发器,如果变更多行数据,会被触发多次 |
2 | FOR STATEMENT | 语句级触发器,即使变更多行数据也只会被触发一次 |
TRIG_TIME
ID | 对象名 | 含义 |
---|---|---|
1 | BEFORE | 触发器在指定事件发生之前执行 |
2 | INSTEAD | 触发器在事件发生后执行,如日志记录或更新其他表 |
4 | AFTER | 触发器用于替代事件的默认行为,主要用于视图上 |
应用举例
- 查询触发器的定义文本、触发时间、触发类型等相关信息
sql
SQL> CREATE TABLE tab_trigger(deptno INT);
-- 创建触发器
SQL> CREATE OR REPLACE TRIGGER tri_info BEFORE INSERT ON tab_trigger
FOR EACH ROW
WHEN(deptno>=50)
BEGIN
RAISE_APPLICATION_ERROR(-20000,'部门号超出规定');
END;
SQL> SELECT * FROM ALL_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 | 1048582 | 1048583 | TRI_INFO | 1 | 1 | 1 | ("DEPTNO") >= (50) | PLSQL | <CLOB> | 2025-06-26 19:16:33.425 | T | T | F | <NULL> | <NULL> | <NULL> |
+-------+-----------+---------+---------+---------+-----------+-----------+------------+-----------+--------------------+----------+--------+--------------------------+--------+-------+--------+----------+-----------+-----------+
- 更多示例可参考《触发器》。