FirebirdSQL logo

DDL déclencheurs

Les déclencheurs DDL sont déclenchés sur des événements de changement de métadonnées spécifiés dans l’une des phases de l’événement. Les déclencheurs BEFORE sont déclenchés avant les changements dans les tables du système. Les déclencheurs AFTER sont déclenchés après les changements dans les tables du système.

Variables disponibles dans l’espace de noms DDL_TRIGGER

Pendant que le déclencheur DDL est en cours d’exécution, l’espace de noms DDL_TRIGGER est disponible pour être utilisé dans la fonction RDB$GET_CONTEXT. Son utilisation est également autorisée dans les procédures et fonctions stockées appelées par les déclencheurs DDL.

Le contexte DDL_TRIGGER fonctionne comme une pile. Avant que le trigger DDL ne soit déclenché, les valeurs liées à la commande en cours d’exécution sont placées sur cette pile. Lorsque le trigger est terminé, les valeurs sont éjectées.Ainsi, dans le cas d’instructions DDL en cascade, lorsque chaque commande DDL utilisateur excite un déclencheur DDL, et que ce déclencheur déclenche d’autres commandes DDL, avec EXECUTE STATEMENT, les valeurs des variables dans l’espace de noms DDL_TRIGGER correspondront à la commande qui a déclenché le dernier déclencheur DDL dans la pile d’appels.

Variables disponibles dans l’espace de noms DDL_TRIGGER:* EVENT_TYPE — type d’événement(CREATE, ALTER, DROP)
  • OBJECT_TYPE — type d’objet (TABLE, VIEW etc.)

  • DDL_EVENT — nom de l’événement (<ddl event item>),

    <ddl event item> = EVENT_TYPE || ' ' || OBJECT_TYPE

  • OBJECT_NAME — nom de l’objet de métadonnées

  • SQL_TEXT — Texte de la requête SQL