La création et l'utilisation de procédures stockées dans MySQL implique plusieurs étapes. Tout d'abord, vous devez créer la procédure à l'aide de l'instruction CREATE PROCEDURE
. Cette instruction définit le nom de la procédure, les paramètres (le cas échéant) et le code SQL qu'il exécute. Voici un exemple de base:
DELIMITER // CREATE PROCEDURE GetEmployeeDetails(IN employeeID INT) BEGIN SELECT * FROM employees WHERE employee_id = employeeID; END // DELIMITER ;
Cela crée une procédure stockée nommée GetEmployeeDetails
qui prend un entier employeeID
comme entrée. La déclaration DELIMITER
modifie le terminateur de déclaration du point-virgule (;) à //
pour éviter les conflits au sein du corps de la procédure. Les blocs BEGIN
et END
enferment la logique de la procédure. Enfin, le DELIMITER
est réinitialisé avec le point-virgule.
Pour appeler la procédure stockée, utilisez la déclaration CALL
:
CALL GetEmployeeDetails(123);
Cela exécutera la procédure avec employeeID
réglé sur 123, renvoyant les détails de cet employé. N'oubliez pas de remplacer employees
et employee_id
par vos noms de table et de colonnes réels. Des procédures plus complexes peuvent inclure des instructions conditionnelles (IF
, ELSE
, CASE
), des boucles (WHILE
, REPEAT
), et une gestion des erreurs.
Les procédures stockées offrent plusieurs avantages:
SELECT
Instructions dans la procédure: Insérer SELECT
Instructions à différents points de votre procédure pour vérifier les valeurs des variables et des résultats intermédiaires. Cela vous permet de surveiller le flux d'exécution de la procédure et d'identifier les problèmes potentiels. TRY...CATCH
des blocs (ou des mécanismes de gestion des erreurs similaires) pour gérer gracieusement les exceptions et fournir des messages d'erreur informatifs. Cela facilite le débogage en fournissant plus de contexte sur les erreurs qui se produisent. Oui, vous pouvez transmettre des paramètres aux procédures stockées MySQL. Les paramètres sont déclarés dans l'instruction CREATE PROCEDURE
à l'aide des mots clés IN
, OUT
, INOUT
:
IN
Paramètres: Il s'agit de paramètres d'entrée uniquement; Leurs valeurs sont transmises à la procédure mais ne peuvent pas être modifiées dans la procédure. L'exemple de la première section montre un paramètre IN
. OUT
Paramètres: Ce sont des paramètres de sortie uniquement. La procédure attribue des valeurs à ces paramètres, qui sont ensuite renvoyés à l'appelant. INOUT
Paramètres: Ce sont des paramètres d'entrée et de sortie. L'appelant fournit une valeur initiale, et la procédure peut modifier et renvoyer la valeur modifiée. Voici un exemple démontrant IN
et OUT
paramètres:
DELIMITER // CREATE PROCEDURE GetEmployeeDetails(IN employeeID INT) BEGIN SELECT * FROM employees WHERE employee_id = employeeID; END // DELIMITER ;
Cette procédure prend deux paramètres d'entrée (num1
, num2
) et renvoie leur somme à travers un paramètre de sortie (sum
). La variable @result
est utilisée pour stocker la valeur de sortie. N'oubliez pas de déclarer des variables comme @result
avant d'appeler la procédure si vous utilisez des paramètres de sortie. L'utilisation de paramètres rend les procédures stockées plus flexibles et réutilisables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!