FirebirdSQL logo
 VIEWPROCEDURE 

CREATE TRIGGER

Utilisé pour:

Création d’un nouveau trigger.

Disponible en

DSQL, ESQL

Syntaxe
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>]'
Table 1. Paramètres de la commande CREATE TRIGGER
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.

Droits d’exécution

L’option facultative SQL SECURITY vous permet de spécifier avec quels privilèges le trigger est exécuté.Si l’option INVOKER est sélectionnée, le déclencheur est exécuté avec les privilèges de l’utilisateur appelant.Si l’option DEFINER est sélectionnée, le déclencheur est exécuté avec les privilèges de l’utilisateur qui le définit (propriétaire). Ces privilèges seront complétés par les privilèges accordés au déclencheur lui-même en utilisant l’opérateur GRANT.Par défaut, le déclencheur hérite des privilèges d’exécution spécifiés pour la table.Les déclencheurs sur les événements de la base de données sont exécutés par défaut avec les privilèges de l’utilisateur qui les définit (propriétaire).