Die TRIGGERS
-Tabelle informiert über Trigger.
Zugriff bekommt nur, wer die SUPER
-Berechtigung
vorweisen kann.
Standard Name | SHOW name |
Remarks |
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 |
||
DEFINER |
Hinweise:
Die Spalten TRIGGER_SCHEMA
und
TRIGGER_NAME
zeigen den Namen der Datenbank
an, in welcher der Trigger auftritt, und den Namen des
Triggers.
Die Spalte EVENT_MANIPULATION
hat entweder
den Wert 'INSERT'
,
'DELETE'
oder 'UPDATE'
.
Wie in Kapitel 20, Trigger, bereits gesagt, ist jeder
Trigger mit genau einer Tabelle verbunden. Die Spalte
EVENT_OBJECT_SCHEMA
zeigt die Datenbank an,
zu der die Tabelle gehört, und
EVENT_OBJECT_TABLE
enthält den Namen der
Tabelle.
Die Anweisung ACTION_ORDER
zeigt an, an
welcher Ordinalposition die Aktion des Triggers in der Liste
aller ähnlichen Trigger auf derselben Tabelle steht. Dieser
Wert ist gegenwärtig immer 0
, da auf einer
Tabelle nicht mehr als ein Trigger mit derselben
EVENT_MANIPULATION
und demselben
ACTION_TIMING
zulässig ist.
Die Spalte ACTION_STATEMENT
enthält die
Anweisung, die bei Aufruf des Triggers ausgeführt wird. Dies
ist dasselbe wie der Text in der
Statement
-Spalte der Ausgabe von
SHOW TRIGGERS
. Beachten Sie, dass dieser
Text UTF-8-kodiert ist.
Die Spalte ACTION_ORIENTATION
enthält
immer den Wert 'ROW'
.
Die Spalte ACTION_TIMING
enthält entweder
den Wert 'BEFORE'
oder
'AFTER'
.
Die Spalten ACTION_REFERENCE_OLD_ROW
und
ACTION_REFERENCE_NEW_ROW
enthalten den
alten und den neuen Spaltenbezeichner. Dies bedeutet, dass
ACTION_REFERENCE_OLD_ROW
immer den Wert
'OLD'
und
ACTION_REFERENCE_NEW_ROW
immer den Wert
'NEW'
hat.
Die Spalte SQL_MODE
zeigt, welcher
SQL-Servermodus bei der Erstellung des Triggers in Kraft war
(und somit auch für jeden Aufruf dieses Triggers in Kraft
bleibt, egal welcher SQL-Servermodus gerade
eingestellt sein mag). Diese Spalte hat denselben
Wertebereich wie die Systemvariable
sql_mode
. Siehe auch
Abschnitt 5.2.5, „Der SQL-Modus des Servers“.
Die Spalte DEFINER
kam in MySQL 5.1.2 neu
hinzu. Der DEFINER
ist der, der den Trigger
definiert hat.
Die folgenden Spalten haben immer den Wert
NULL
: TRIGGER_CATALOG
,
EVENT_OBJECT_CATALOG
,
ACTION_CONDITION
,
ACTION_REFERENCE_OLD_TABLE
,
ACTION_REFERENCE_NEW_TABLE
und
CREATED
.
Ein Beispiel mit dem in Abschnitt 20.3, „Verwendung von Triggern“,
definierten Trigger 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
SQL_MODE:
DEFINER: me@localhost
Siehe auch Abschnitt 13.5.4.23, „SHOW TRIGGERS
“.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.