CREATE TRIGGER
Création d’un nouveau trigger.
DSQL, ESQL
CREATE TRIGGER trigname { <relation_trigger_legacy> | <relation_trigger_sql2003> | <database_trigger> | <ddl_trigger> } <routine 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_events> [POSITION number] <mutation_list> ::= <mutation> [OR <mutation> [OR <mutation>]] <mutation> ::= INSERT | UPDATE | DELETE <db_event> ::= CONNECT | DISCONNECT | TRANSACTION {START | COMMIT | ROLLBACK} <ddl_events> ::= { 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 <routine-body> ::= <psql-routine-spec> | <external-routine-spec> <psql-routine-spec> ::= [<rights-clause>] <psql-routine-body> <rights-clause> ::= SQL SECURITY {DEFINER | INVOKER} <psql-routine-body> ::= Voir Syntaxe du corps du module <external-routine-spec> ::= <external-routine-reference> [AS <extbody>] <external-routine-reference> ::= EXTERNAL NAME '<extname>' ENGINE <engine> <extname> ::= '<module-name>!<routine-name>[!<misc-info>]'
Paramètre | Description |
---|---|
trigname |
Nom du trigger.Peut contenir jusqu’à 63 caractères. |
relation_trigger_legacy |
Déclaration du trigger de la table (héritée). |
relation_trigger_sql2003 |
La déclaration du trigger de la table selon la norme SQL-2003. |
database_trigger |
Déclaration d’un trigger de base de données. |
ddl_trigger |
Déclaration de déclenchement DDL. |
tablename |
Nom de la table |
viewname |
Nom de la vue |
mutation_list |
Liste des événements de la table. |
mutation |
Un des événements sur la table. |
db_event |
Un événement de connexion ou de transaction. |
ddl_events |
Liste des événements de changement de métadonnées. |
ddl_event_item |
Un des événements de la modification des métadonnées. |
number |
L’ordre dans lequel le trigger est actionné.De 0 à 32767. |
extbody |
Le corps du déclencheur externe.La chaîne littérale peut être utilisée par l’UDR à diverses fins. |
module-name |
Nom du module externe. |
routine-name |
Le nom du point d’entrée dans le module. |
misc-info |
Informations diverses utilisées par le trigger externe |
L’instruction CREATE TRIGGER
crée un nouveau déclencheur.Un déclencheur peut être créé pour le ou les événements d’une relation (table ou vue), pour un ou des événements de changement de métadonnées, ou pour l’un des événements de la base de données.
L’opérateur CREATE TRIGGER
, comme ses parents ALTER TRIGGER
, CREATE OR ALTER TRIGGER
et RECREATE TRIGGER
sont des opérateurs composés contenant un en-tête et un corps.
L’en-tête spécifie le nom du déclencheur et contient le nom de la relation (pour les déclencheurs de table), la phase du déclencheur, l’événement (ou les événements) du déclencheur et la position.Le nom du déclencheur doit être unique parmi les autres noms de déclencheurs.