Principes des triggers

Trigger

Un trigger (ou déclencheur) est un bloc PL/SQL associé à une table permettant de déclencher une action avant ou après un INSERT, UPDATE ou DELETE sur cette table.

Les triggers sont stockés dans la base.

A quoi servent les triggers ?

  • Ils permettent de renforcer l'intégrité des données (mais on préférera des contraintes "check", "unique" ou "foreign key" quand c'est possible).

  • Ils permettent d'auditer des actions sur une table.

  • Ils permettent de calculer des valeurs dérivées pour d'autres colonnes de la table.

    Ils constituent ainsi une des solutions pour l'implémentation des attributs dérivés.

Types de triggers

Il existe deux types de triggers :

  • Trigger sur ligne

    le trigger est exécuté pour chaque ligne concernée par l'instruction insert, update ou delete (option "for each row").

  • Trigger sur instruction

    le trigger est exécuté une seule fois pour l'instruction insert, update ou delete, même si elle traite plusieurs lignes d'un coup.

Trigger

CREATE [OR REPLACE] TRIGGER nom_trigger {BEFORE|AFTER}
[INSERT OR][UPDATE [OF nom_colonne] OR][DELETE]
ON nom_Table
[FOR EACH ROW [WHEN (condition)] ]
DECLARE
 [variable declarations]
BEGIN
 instructions
END;

Triggers multiples

Une même table peut avoir plusieurs triggers, mais cela est à éviter en général, pour des raisons de facilité de maintenance et de performance.

Exception

Si l'exécution du trigger échoue, l'action (insert, update ou delete dans la table) est annulée (et retourne une exception Oracle).

AccueilRappels > Rappels triggers > TRIGGER< PrécédentSuivant >