IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

CREATE CONSTRAINT TRIGGER

CREATE CONSTRAINT TRIGGER — Définir un nouveau déclencheur sur contrainte

Synopsis

CREATE CONSTRAINT TRIGGER nom
    AFTER événement [ OR ... ]
    ON table
    [ FROM table_référencée ]
    { NOT DEFERRABLE | [ DEFERRABLE ] { INITIALLY IMMEDIATE | INITIALLY DEFERRED } }
    FOR EACH ROW
    [ WHEN ( condition ) ]
    EXECUTE PROCEDURE nom_fonction ( arguments )

Description

CREATE CONSTRAINT TRIGGER crée un trigger de contrainte. C'est identique à un trigger standard sauf que le moment de l'exécution du trigger est ajustable en utilisant SET CONSTRAINTS(7). Les triggers de contraintes doivent être des triggers AFTER ROW. Ils peuvent être déclenchés soit à la fin de l'instruction l'ayant déclenché soit à la fin de la transaction le contenant ; dans ce dernier cas, ils sont dit déferrés (deferred). Le déclenchement d'un tigger déferré en attente peut voir son exécution forcée en utilisant SET CONSTRAINTS.

Paramètres

nom

Le nom du trigger de contrainte. C'est aussi le nom à utiliser pour modifier le comportement du trigger en utilisant SET CONSTRAINTS. Le nom ne peut pas être qualifié du schéma -- le trigger hérite du schéma de sa table.

événement

Une valeur parmi INSERT, UPDATE ou DELETE ; ceci indique l'événement qui sera la cause de l'exécution du déclencheur. Plusieurs événements peuvent être indiqués en utilisant le mot clé OR.

table

Le nom (éventuellement qualifié du nom du schéma) de la table dans laquelle se déroulent les événements déclenchant.

table_référencée

Le nom d'une autre table (parfois qualifié du nom du schéma) référencée par la contrainte. Cette option est utilisée pour les contraintes de type clé étrangère et n'est pas recommandée pour un usage général.

DEFERRABLE, NOT DEFERRABLE, INITIALLY IMMEDIATE, INITIALLY DEFERRED

Le moment d'exécution par défaut du trigger. Voir la documentation de CREATE TABLE(7) pour les détails sur ces options de contraintes.

condition

Une expression booléenne déterminant si la fonction trigger sera en fait exécutée. Ceci agit de la même façon que CREATE TRIGGER(7). Notez en paticulier que l'évaluation de la condition WHEN n'est pas déferrée, mais survient immédiatement après l'opération de mise à jour de la ligne. Si la condition n'évalue pas à true, alors le trigger n'est pas mis en queue pour une exécution déferrée.

nom_fonction

La fonction à appeler quand le trigger est déclenché. Voir CREATE TRIGGER(7) pour les détails.

arguments

Chaînes optionnelles d'argument à passer à la fonction trigger. Voir CREATE TRIGGER(7) pour plus de détails.

Compatibilité

CREATE CONSTRAINT TRIGGER est une extension PostgreSQL™ du standard SQL.

Voir aussi

CREATE TRIGGER(7), DROP TRIGGER(7), SET CONSTRAINTS(7)