TRIGGER ligne
Création
Exemples :
Mise à jour de la quantité en stock à partir de la quantité commandée lors de l'ajout d'une ligne de commande.
Note : tai_ => Trigger After Insert.
Le trigger ne sera activé que si qte_commande de la table lignecde est modifié, si c'est une autre colonne, le trigger ne sera pas activé.
Le trigger sera systématiquement activé sur modification de n'importe quelle colonne de la table lignecde.
Les préfixes :OLD et :NEW
L'action UPDATE est une vue logique, physiquement un UPDATE = DELETE + INSERT.
Avant DELETE : copie des données dans un buffer (tampon) reprenant la structure de la table sur laquelle est défini le trigger et préfixé de :OLD, exemple :
:OLD.lignecde = :OLD.id_article, :OLD.id_commande, :OLD.etat, :OLD.qte_commande
Avant INSERT : copie des nouvelles données dans un buffer (tampon) reprenant la structure de la table et préfixé de :NEW, exemple :
:NEW.lignecde = : NEW.id_article, : NEW.id_commande, : NEW.etat, : NEW.qte_commande
Possibilité d'utiliser les structures OLD et NEW dans le corps du trigger, exemple :
Mise à jour de la quantité en stock à partir de la quantité commandée lors de l'ajout d'une ligne de commande.
Utilisation des préfixes :
TRIGGER et restriction
On peut restreindre l'exécution d'un TRIGGER avec la clause WHEN.
La quantité en stock de n'importe quel article ne pourra pas descendre en dessous de 10% de sa valeur en cours.
Important : dans la clause WHEN, il ne faut pas mettre les : devant NEW et OLD.
TRIGGER multi-actions
Chacun des cas proposés dans la déclaration sera évalué dans le corps.
Exemple :
La quantité en stock sera mise à jour dans les trois cas.