23.1.16. INFORMATION_SCHEMA TRIGGERS表

TRIGGERS表提供了关于触发程序的信息。

必须有SUPER权限才能查看该表。

标准名称

SHOW名称

注释

TRIGGER_CATALOG

 

NULL

TRIGGER_SCHEMA

 

 

TRIGGER_NAME

Trigger

 

EVENT_MANIPULATION

Event

 

EVENT_OBJECT_CATALOG

 

NULL

EVENT_OBJECT_SCHEMA

 

 

EVENT_OBJECT_TABLE

Table

 

ACTION_ORDER

 

0

ACTION_CONDITION

 

NULL

ACTION_STATEMENT

Statement

 

ACTION_ORIENTATION

 

ROW

ACTION_TIMING

Timing

 

ACTION_REFERENCE_OLD_TABLE

 

NULL

ACTION_REFERENCE_NEW_TABLE

 

NULL

ACTION_REFERENCE_OLD_ROW

 

OLD

ACTION_REFERENCE_NEW_ROW

 

NEW

CREATED

 

NULL (0)

SQL_MODE

 

 

注释:

·         TRIGGER_SCHEMATRIGGER_NAME列中分别含有相应数据库的名称以及触发程序的名称,在该数据库中,含有该触发程序。

·         EVENT_MANIPULATION列含有下述值之一:INSERT、DELETE、或UPDATE。

·         正如第21章:触发程序中指出的那样,每个触发程序均与一个表准确相关。EVENT_OBJECT_SCHEMAEVENT_OBJECT_TABLE列包含相应的数据库和表名,在该数据库中,含有该表。

·         ACTION_ORDER语句含有触发程序动作(在相同表上所有类似触发程序列表中)的顺序位置。目前该值总为0,这是因为在相同表上具有相同EVENT_MANIPULATIONACTION_TIMING的触发程序不能超过1个。

·         ACTION_STATEMENT列含有激活了触发程序时将要执行的语句。这与SHOW TRIGGERS输出的Statement(语句)列中显示的文本相同。注意,该文本采用了UTF-8编码方式。

·         ACTION_ORIENTATION列总含有值“ROW

·         ACTION_TIMING列含有下述两种值之一:BEFOREAFTER

·         ACTION_REFERENCE_OLD_ROWACTION_REFERENCE_NEW_ROW分别含有旧的和新的列标识符。这意味着ACTION_REFERENCE_OLD_ROW总含有值“OLD,ACTION_REFERENCE_NEW_ROW总含有值“NEW

·         SQL_MODE列显示了创建触发程序时有效的服务器SQL模式(无论当前的服务器SQL模式为何,只要激活了触发程序,它将保持有效)。该列的可能取值范围与sql_mode系统变量的取值范围相同。请参见5.3.2节,“SQL服务器模式”

·         在下述列中,目前总含有NULL:TRIGGER_CATALOGEVENT_OBJECT_CATALOGACTION_CONDITIONACTION_REFERENCE_OLD_TABLEACTION_REFERENCE_NEW_TABLECREATED

例如,使用21.3节,“使用触发程序”中定义的触发程序ins_sum。

mysql> SELECT * FROM INFORMATION_SCHEMA.TRIGGERS\G
*************************** 1. row ***************************
 TRIGGER_CATALOG: NULL
TRIGGER_SCHEMA: test
 TRIGGER_NAME: ins_sum
  EVENT_MANIPULATION: INSERT
EVENT_OBJECT_CATALOG: NULL
 EVENT_OBJECT_SCHEMA: test
  EVENT_OBJECT_TABLE: account
 ACTION_ORDER: 0
ACTION_CONDITION: NULL
ACTION_STATEMENT:  SET @sum = @sum + NEW.amount
  ACTION_ORIENTATION: ROW
 ACTION_TIMING: BEFORE
ACTION_REFERENCE_OLD_TABLE: NULL
ACTION_REFERENCE_NEW_TABLE: NULL
  ACTION_REFERENCE_OLD_ROW: OLD
  ACTION_REFERENCE_NEW_ROW: NEW
CREATED: NULL
1 row in set (1.54 sec)

另请参见13.5.4.20节,“SHOW TRIGGERS语法”

关注编程学问公众号