FirebirdSQL logo

Options de déclenchement

Il existe six options de base pour la relation de phase d’événement pour une table (vue) :

avant d’ajouter une nouvelle ligne

(BEFORE INSERT)

après avoir ajouté une nouvelle ligne

(AFTER INSERT)

avant de modifier la ligne

(BEFORE UPDATE)

après avoir modifié la ligne

(AFTER UPDATE)

avant que la ligne soit supprimée

(BEFORE DELETE)

après avoir supprimé une ligne

(AFTER DELETE)

En plus des formulaires de base avec une seule phase et un seul événement, Firebird supporte également les formulaires avec une seule phase et plusieurs événements, tels que BEFORE INSERT OR UPDATE OR DELETE ou AFTER UPDATE OR DELETE ou toute autre combinaison de votre choix.

Note

Les déclencheurs à phases multiples, tels que "AVANT OU APRÈS …​", ne sont pas pris en charge.

Variables de contexte INSERTING, UPDATING et DELETING de type booléen peut être utilisé dans le corps du déclencheur pour déterminer l’événement qui a déclenché le déclencheur.

Nouvelles et anciennes variables de contexte

Dans les triggers DML, Firebird donne accès à un ensemble de variables contextuelles NEW et OLD.Chaque ensemble est un tableau de la chaîne entière : OLD.* — la valeur de la chaîne avant la modification des données et NEW.* — la valeur de la chaîne requise ("nouvelle").Les Instructions peuvent s’y référer en utilisant les formes suivantes : NEW.columnname et OLD.columnname.La colonne columnname_ peut être n’importe quelle colonne définie dans la table (vue), pas seulement celle qui a été modifiée.

Les variables de contexte NEW et OLD obéissent aux règles suivantes :

  • Dans tous les déclencheurs, les variables de contexte OLD sont en lecture seule ;

  • Dans les déclencheurs BEFORE UPDATE et BEFORE INSERT, les variables NEW sont en lecture seule et en écriture seule sauf pour les colonnes COMPUTED BY ;

  • Dans les déclencheurs INSERT, la référence aux variables OLD n’est pas autorisée et lèvera une exception ;

  • Dans les déclencheurs DELETE, la référence aux variables NEW n’est pas autorisée et soulèvera une exception ;

  • Dans tous les déclencheurs AFTER, les variables NEW sont en lecture seule.