Différence entre trigger et procédure stockée
Quelle est la différence entre trigger et procédure stockée ? – trigger et procédure stockée sont des composants avancé de SQL. Les deux exécutent une tâche spécifique lors de leur exécution. La différence clé entre trigger et procédure stockée réside dans le fait que trigger s’exécute automatiquement lors d’un événement alors que la procédure stockée est exécutée lorsqu’elle est explicitement appelée.
Table de comparaison
Trigger | Procédure stockée | |
---|---|---|
Définition | Ils sont automatiquement exécutés lors d’un événement spécifié. | Ils peuvent être exécutés chaque fois que nécessaire. |
L’Appel | Les triggers ne peuvent pas être appelés dans une procédure. | Mais, vous pouvez appeler une procédure dans un trigger. |
Les paramètres | Nous ne pouvons pas passer de paramètres aux triggers. | Nous pouvons passer des paramètres aux procédures. |
Return | Le trigger ne renvoie jamais de valeur à l’exécution. | La procédure peut renvoyer une ou plusieurs valeur à l’exécution. |
Définition de Trigger
Le trigger est comme une procédure qui est exécutée automatiquement à l’occurrence d’un événement spécifié. Le trigger n’a pas besoin d’être appelé explicitement, et sont créés pour effectuer certaines tâches en réponse à l’occurrence d’un événement spécifié.
La forme générale du trigger :
CREATE TRIGGER <nom_du_trigger> BEFORE/AFTER <events> CONDITION ACTION;
Exemple concrète d’un trigger :
L’exemple suivant illustre un trigger qui calcule la commission de chaque nouvel employé appartenant au service 22 avant qu’un enregistrement pour cet employé ne soit inséré dans la table EMPLOYEE:
CREATE OR REPLACE TRIGGER employee_commission_trigger BEFORE INSERT ON employee FOR EACH ROW BEGIN IF :NEW.deptno = 22 THEN :NEW.commission := :NEW.salary * .2; END IF; END;
Définition de procédure stockée
La procédure stockée peut être considérée comme une unité de programme, créée pour exécuter certaines tâches et stockée dans la base de données. Ils sont appelés par une instruction SQL chaque fois que nécessaire. Les procédures stockée sont comme les fonctions définies par l’utilisateur définies par les développeurs. Les procédures stockée peuvent être appelées en utilisant CALL ou EXECUTE.
La forme générale d’une procédure stockée:
CREATE PROCEDURE <procedure_name> (<parameters>) RETURNS <return_type> <local_declarations> <procedure_body>;
Ici, les paramètres et les déclarations locales sont facultatifs. Ils ne sont mentionnés que lorsqu’ils sont requis.
La forme générale d’une appel d’une procédure stockée:
CALL <procedure_or_function_name> (<argument_list>);<br>
Différences clés entre déclencheur et procédure
- La principale différence entre le trigger et la procédure stockée est qu’un trigger est une instruction qui est appelée automatiquement lorsqu’un événement s’est produit. En revanche, la procédure stockée est invoquée chaque fois que cela est nécessaire.
- On peut définir une procédure stockée à l’intérieur d’un trigger. Mais, un trigger n’est jamais défini dans une procédure stockée, car le trigger doit être appelé automatiquement à la survenance de tout événement.
- Nous pouvons passer des paramètres aux procédures stockées, mais nous ne pouvons pas transmettre de paramètres à un trigger car nous ne l’avons pas invoqué.
- Une procédure stockée peut renvoyer des valeurs de paramètre ou du code, mais un trigger ne peut pas.
Conclusion:
Les triggers sont utiles, mais ils ne sont pas recommandés, car ils augmentent la complexité des données. Parfois, les triggers sont également remplacés par des procédures stockées.