CREATE TRIGGER
Einen neuen Trigger erstellen
DSQL, ESQL
CREATE TRIGGER trigname { <relation_trigger_legacy> | <relation_trigger_sql2003> | <database_trigger> | <ddl_trigger> } {<psql_trigger> | <external-module-body>} <relation_trigger_legacy> ::= FOR {tablename | viewname} [ACTIVE | INACTIVE] {BEFORE | AFTER} <mutation_list> [POSITION number] <relation_trigger_sql2003> ::= [ACTIVE | INACTIVE] {BEFORE | AFTER} <mutation_list> ON {tablename | viewname} [POSITION number] <database_trigger> ::= [ACTIVE | INACTIVE] ON <db_event> [POSITION number] <ddl_trigger> ::= [ACTIVE | INACTIVE] {BEFORE | AFTER} <ddl_event> [POSITION number] <mutation_list> ::= <mutation> [OR <mutation> [OR <mutation>]] <mutation> ::= INSERT | UPDATE | DELETE <db_event> ::= CONNECT | DISCONNECT | TRANSACTION {START | COMMIT | ROLLBACK} <ddl_event> ::= ANY DDL STATEMENT | <ddl_event_item> [{OR <ddl_event_item>} ...] <ddl_event_item> ::= {CREATE | ALTER | DROP} TABLE | {CREATE | ALTER | DROP} PROCEDURE | {CREATE | ALTER | DROP} FUNCTION | {CREATE | ALTER | DROP} TRIGGER | {CREATE | ALTER | DROP} EXCEPTION | {CREATE | ALTER | DROP} VIEW | {CREATE | ALTER | DROP} DOMAIN | {CREATE | ALTER | DROP} ROLE | {CREATE | ALTER | DROP} SEQUENCE | {CREATE | ALTER | DROP} USER | {CREATE | ALTER | DROP} INDEX | {CREATE | DROP} COLLATION | ALTER CHARACTER SET | {CREATE | ALTER | DROP} PACKAGE | {CREATE | DROP} PACKAGE BODY | {CREATE | ALTER | DROP} MAPPING <psql_trigger> ::= [SQL SECURITY {INVOKER | DEFINER}] <psql-module-body> <psql-module-body> ::= !! Siehe auch Syntax des Modulrumpfes !! <external-module-body> ::= !! Siehe auch Syntax des Modulrumpfes !!
Parameter | Beschreibung |
---|---|
trigname |
Trigger name.The maximum length is 63 characters.Er muss unter allen Triggernamen in der Datenbank eindeutig sein. |
relation_trigger_legacy |
Legacy-Stil der Trigger-Deklaration für einen Relations-Trigger |
relation_trigger_sql2003 |
Relations-Trigger-Deklaration gemäß SQL:2003-Standard |
database_trigger |
Datenbank-Trigger-Deklaration |
tablename |
Name der Tabelle, mit der der Relationstrigger verknüpft ist |
viewname |
Name der Ansicht, mit der der Relationstrigger verknüpft ist |
mutation_list |
Liste der Beziehungsereignisse (Tabellenansicht |) |
number |
Position des Abzugs in der Schussfolge.Von 0 bis 32.767 |
db_event |
Verbindungs- oder Transaktionsereignis |
ddl_event |
Liste der Metadatenänderungsereignisse |
ddl_event_item |
Eines der Metadatenänderungsereignisse |
Die Anweisung CREATE TRIGGER
wird verwendet, um einen neuen Trigger zu erstellen.Ein Trigger kann entweder für ein Relation (Tabelle | Ansicht) Ereignis (oder eine Kombination von Ereignissen), für ein Datenbankereignis oder für ein DDL Ereignis erstellt werden.
CREATE TRIGGER
ist zusammen mit seinen assoziierten ALTER TRIGGER
, CREATE OR ALTER TRIGGER
und RECREATE TRIGGER
eine zusammengesetzte Anweisung, bestehend aus einem Header und einem Body.Der Header gibt den Namen des Triggers, den Namen der Beziehung (bei einem DML-Trigger), die Phase des Triggers, die Ereignisse, auf die er angewendet wird, und die Position an, um eine Reihenfolge zwischen den Triggern zu bestimmen.
Der Triggerrumpf besteht aus optionalen Deklarationen lokaler Variablen und benannten Cursors gefolgt von einer oder mehreren Anweisungen oder Anweisungsblöcken, die alle in einem äußeren Block eingeschlossen sind, der mit dem Schlüsselwort BEGIN
beginnt und mit dem Schlüsselwort END
endet.Deklarationen und eingebettete Anweisungen werden mit Semikolons (‘;
’) abgeschlossen.
Der Name des Triggers muss unter allen Triggernamen eindeutig sein.