MySQL est un système de gestion de bases de données relationnelles open source populaire. MySQL vous permet de créer et de gérer des bases de données pour stocker et accéder à de grandes quantités de données. Les procédures stockées sont des blocs de code stockés dans une base de données qui vous permettent d'effectuer des opérations courantes en les appelant. Lors du développement et du débogage de procédures stockées, vous pouvez rencontrer des problèmes et des erreurs. Cet article explique comment déboguer les procédures stockées MySQL.
Avant de déboguer les procédures stockées, vous devez activer le débogueur de procédure stockée MySQL. Ceci peut être réalisé en définissant les paramètres suivants dans le fichier de configuration MySQL :
[mysqld] ... # Enable stored procedure debugging debugger=1
Après avoir défini le fichier, MySQL doit être redémarré pour que les modifications prennent effet.
Dans MySQL, il existe deux principaux types de débogueurs : à pas unique et non pas à pas. Le débogage en une seule étape est le moyen le plus simple d'exécuter une procédure stockée ligne par ligne, en suivant l'exécution de chaque instruction étape par étape. Le débogage sans progression est une méthode permettant d'exécuter des points d'arrêt lors de l'exécution d'une procédure stockée. Les deux débogueurs sont décrits en détail ci-dessous.
Le débogage en une seule étape est une méthode d'exécution d'une procédure stockée ligne par ligne. Il vous permet de mettre en pause et d'inspecter votre code avant chaque instruction. Vous pouvez activer et utiliser le débogueur en une seule étape en suivant les étapes suivantes :
Tout d'abord, vous devez définir une procédure stockée pour montrer comment effectuer un débogage en une seule étape. Voici une procédure stockée simple :
DELIMITER $$ CREATE PROCEDURE simple_addition(i INT, j INT) BEGIN DECLARE result INT; SET result = i + j; SELECT result; END$$ DELIMITER ;
Après avoir défini la procédure stockée, vous devez activer le débogueur en une seule étape. Vous pouvez utiliser l'instruction suivante :
SET @@DEBUG=1;
Ensuite, vous devez ajouter le mot-clé "debug" à l'instruction d'appel de procédure stockée pour démarrer le débogueur :
CALL simple_addition(20, 30) debug;
Après avoir exécuté cette instruction, MySQL fera une pause exécution et transfère le contrôle au débogueur en une seule étape.
Dans le débogueur en une seule étape, vous pouvez contrôler l'exécution de votre code à l'aide des commandes suivantes :
Voici un exemple d'utilisation du débogueur en une seule étape :
CALL simple_addition(20, 30) debug;
Le débogage sans étape est une méthode d'exécution de points d'arrêt lors de l'exécution d'une procédure stockée. Vous pouvez suivre les étapes suivantes pour activer et utiliser le débogueur sans progression :
Encore une fois, vous devez d'abord définir une procédure stockée pour démontrer comment effectuer un débogage sans progression. Vous trouverez ci-dessous une procédure stockée simple :
DELIMITER $$ CREATE PROCEDURE simple_subtraction(i INT, j INT) BEGIN DECLARE result INT; SET result = i - j; SELECT result; END$$ DELIMITER ;
Vous pouvez activer le débogueur sans étape à l'aide de la commande suivante :
CALL simple_subtraction(20, 30) debug_on_break;
Lors de l'exécution d'une procédure stockée, si un point d'arrêt est rencontré , MySQL arrêtera automatiquement l'exécution.
Une fois le débogueur non en une seule étape activé, vous pouvez utiliser les commandes suivantes pour contrôler l'exécution de votre code :
Voici un exemple utilisant un non-single- step debugger :
CALL simple_subtraction(20, 30) debug_on_break(3);
c;
p result;
b -3;
r;
MySQL fournit une variété de méthodes pour déboguer les procédures stockées, y compris le débogage en une seule étape et le débogage sans étape. Lorsque vous utilisez ces débogueurs, vous pouvez utiliser diverses commandes pour contrôler l'exécution de votre code et afficher les valeurs des variables et des expressions. Si vous développez une procédure stockée complexe, ces débogueurs peuvent être des outils très utiles.
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!