TRIGGER par ordre
Rappel : un déclencheur par ordre ne s'active qu'une seule fois même si les actions LMD (INSERT, UPDATE, DELETE) se produisent n fois.
Si on lance la requête suivante :
DELETE FROM facture WHERE id_facture = 20190221001;
On obtiendra le message : Suppression de facture non autorisée ! et la facture ne sera pas supprimée.
TRIGGER sur vue
Un déclencheur INSTEAD OF s'exécute à la place de la vue sur laquelle on tente de faire une action LMD (INSERT, UPDATE, DELETE) alors que ces actions ne sont pas possibles.
Soit la vue v_client :
La requête suivante provoquera une erreur :
Pour résoudre le problème on crée un TRIGGER INSTEAD OF qui agira à la place de la vue directement sur la table :