-
Trigger statement ou row
bonjour à tous,
j'ai vu qu'on pouvait faire des triggers par statement ou for each roww ...
Quelle est la différence ?
Dans quel cas utiliser l'un ou l'autre ?
Peut on les utiliser en parallèle ?
Avez vous des docs (lien) la dessus
Merci pour vos éclaircissements.
-
soit l'ordre SQL suivant :
Code:
update salaries set salaire = salaire * 1.50;
si vous avez un statement trigger, il sera déclenché une seule fois;
si vous avez un trigger for each row, il sera déclenché 15 209 fois, correspondant au 15209 lignes de la table salaries.
-
J'ai cherché dans les cours, j'ai pas trouvé de cours là dessus. mais sur google t'aura plein d'exemples.
Tu as plusieurs types de triggers sur table (tu en a d'autres au niveau base) :
BEFORE / AFTER
Puis
INSERT/DELETE/UPDATE
puis
FOR EACH ROW / (statement)
Un trigger FOR EACH ROW s'exécutera pour chaque ligne traitée.
Un trigger global ne s'exécutera qu'une fois pour l'ordre DML passé.
Tout dépend donc de ce que tu dois faire. En général, les triggers sont au niveau ligne. Le niveau statement est plus rare.
-
Merci à tous les deux j'ai compris
J'ai trouvé de la doc entre temps sur ce même site
j'aurai du un peu plus cherché
donc c ok