FirebirdSQL logo

Déclencheurs

Un déclencheur est un programme stocké dans la zone de métadonnées d’une base de données et exécuté côté serveur. Un déclencheur ne peut pas être appelé directement. Il est appelé automatiquement lorsqu’un ou plusieurs événements relatifs à une table (vue) spécifique se produisent, ou lorsqu’un des événements de la base de données se produit.

Un trigger déclenché par un événement de table est associé à une table ou à une vue, à un ou plusieurs événements pour cette table ou cette vue (INSERT, UPDATE, DELETE) et à exactement une phase de cet événement (BEFORE ou AFTER).

Le déclencheur est exécuté dans le contexte dans lequel le programme qui a déclenché l’événement a été exécuté. Les exceptions sont les déclencheurs qui répondent aux événements de la base de données. Pour certains d’entre eux, une transaction par défaut est lancée.

Ordre de fonctionnement

Plus d’un trigger peut être défini pour chaque combinaison phase-événement. L’ordre dans lequel ils sont exécutés peut être spécifié explicitement avec l’argument optionnel POSITION dans la définition du trigger. La position maximale est de 32767. Les triggers avec une position plus petite sont appelés en premier.

Si la clause POSITION est omise ou si plusieurs déclencheurs avec la même phase et le même événement ont la même position, ces déclencheurs seront exécutés dans l’ordre alphabétique de leurs noms.