触发系统表描述

描述

有关触发的信息。

领域

场地 类型 描述

架构

细绳

包含放置此触发器的表的架构。

Tablename.

细绳

放置此触发器的表的名称。

triggername.

细绳

触发器的名称。

trigger_type.

整数

表示触发器的语言,定义为:0 = Java,1 = SQL。

type_mask.

整数

表示每个事件的位掩码整数值,导致此触发的触发。每个比特的描述是:

(行级触发器)

  • 0x1 = 前 Insert

  • 0x2 = 后 Insert

  • 0x4 = 前 Update

  • 0x8 = 后 Update

  • 0x10 = 前 Delete

  • 0x20 = 后 Delete

  • 0x40 =保留未来使用

  • 0x80 =保留未来使用

(声明级触发器)

  • 0x100 = 前 Statement Insert

  • 0x200 = 后 Statement Insert

  • 0x400 = 前 Statement Update

  • 0x800 = 后 Statement Update

  • 0x1000 = 前 Statement Delete

  • 0x2000 = 后 Statement Delete

(数据库级触发器)

  • 0x4000 = 前 Create Table

  • 0x8000 = 后 Create Table

  • 0x10000 = 前 Drop Table

  • 0x20000 = 后 Drop Table

  • 0x40000 = 前 Create Index

  • 0x80000 = 后 Create Index

  • 0x100000 = 前 Drop Index

  • 0x200000 = 后 Drop Index

  • 0x400000 = 前 Create Temporary Table

  • 0x800000 = 后 Create Temporary Table

  • 0x1000000 = 前 Drop Temporary Table

  • 0x2000000 = 后 Drop Temporary Table

  • 0x4000000 = 前 Create Temporary Index

  • 0x8000000 = 后 Create Temporary Index

  • 0x10000000 = 前 Drop Temporary Index

  • 0x20000000 = 后 Drop Temporary Index

For example, using a trigger to illustrate the combined value of 前 Delete and 前 Update:

SQL> create trigger trg1 for t before delete before update as throw 'aaa'; end_trigger;

SQL> select type_mask from system.triggers;

type_mask.

---------

20

The integer value 20 is 0x14 hexadecimal. If the hexadecimal value such as 0x14 is listed in the description above, it represents the single event that causes this trigger to fire. If it is not displayed in the description above (as in the example offered here), the hexadecimal value represents more than one event that causes this trigger to fire.

The event type mask of 20 that represents 前 Delete and 前 Update is the combination of [0x10 | 0x4] in hexadecimal or the combination of [16| 4 ] in decimal.

位置

small

A user-provided index that defines the order of invocations of triggers (lower value means early execution). This corresponds to the 位置 number argument - see 创建触发器.

积极的

small

Defined as: 1=Active, 0=Inactive

班级名称

瓦尔(256)

For Java triggers, the classid specified in the 创建触发器 command.

方法名称

瓦尔(256)

对于Java触发器,触发器可以调用的方法的完全限定名称。

trigger_text.

细绳

对于SQL触发器,触发器的实际文本。

版本

整数

内部版本,保留未来使用。

索引

Primary Index: TRIGGERS..PRIMARY_KEY on fields: 架构, Tablename., triggername..

例子

The first row below represents a SQL trigger and the second row represents a Java trigger. We use 放 OUTPUT VERTICAL to make the display more readable.

放 OUTPUT VERTICAL;
SELECT * FROM system.triggers;
==================================== Row #1 ====================================架构: HOCKEY
TABLENAME: HOCKEY
TRIGGERNAME: TRG_HOCKEY_INSERT
TRIGGER_TYPE: 1
TYPE_MASK: 1
POSITION: 0
ACTIVE: 1
CLASSNAME:
METHODNAME:
TRIGGER_TEXT: IF (new.team <> 'Bruins') THROW 'Team Must Be "Bruins"'; END_IF; END_TRIGGER ;
==================================== Row #2 ====================================架构: USER
TABLENAME: MYTABLE
TRIGGERNAME: TR1
TRIGGER_TYPE: 0
TYPE_MASK: 2
POSITION: 0
ACTIVE: 1
CLASSNAME: mytriggerclass
METHODNAME: com.mycompany.MyFirstJavaTrigger.logInsert
TRIGGER_TEXT:

触发执行表

下表反映了当前触发行为:

When using IF EXISTS or IF NOT EXISTS,

  • 如果目标存在,则应触发触发器之前和之后的相关,

  • 如果目标没有’T存在,只有在触发器之前应该被解雇相关。

触发事件 SQL语句 SQL查询 目标存在 执行

创建表

创建表如果不存在

是的

创建表

创建表如果不存在

是的

创建表

创建表如果不存在

是的

是的

创建表

创建表如果不存在

是的

下拉表

删除表(如果存在)

是的

下拉表

删除表(如果存在)

下拉表

删除表(如果存在)

是的

是的

下拉表

删除表(如果存在)

是的

是的

下降索引

下降索引如果存在

是的

下降索引

下降索引如果存在

下降索引

下降索引如果存在

是的

是的

下降索引

下降索引如果存在

是的

是的