Maison > base de données > tutoriel mysql > Comment déboguer les procédures stockées MySQL

Comment déboguer les procédures stockées MySQL

PHPz
Libérer: 2023-04-20 10:42:35
original
1915 Les gens l'ont consulté

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.

  1. Activer le débogueur de procédure stockée 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
Copier après la connexion

Après avoir défini le fichier, MySQL doit être redémarré pour que les modifications prennent effet.

  1. Utiliser un débogueur

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.

  1. Débogage en une seule étape

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 :

  1. Définir une procédure stockée

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 ;
Copier après la connexion
  1. Activer le débogueur en une seule étape

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;
Copier après la connexion
  1. Démarrez le débogueur

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;
Copier après la connexion
Copier après la connexion

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.

  1. Utilisez le 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 :

  • c : Exécutez la procédure stockée jusqu'à ce que l'exécution soit terminée ou qu'un point d'arrêt soit rencontré
  • s : Étape par étape Exécuter le code de la procédure stockée ligne par ligne
  • n : Exécuter la ligne de code suivante, mais ne pas saisir le sous-programme ou la fonction
  • p expression : Imprimer la valeur de la valeur ou de l'expression
  • l : Liste le code de la fonction ou de la procédure stockée actuelle
  • b : Définir un point d'arrêt sur la ligne actuelle

Voici un exemple d'utilisation du débogueur en une seule étape :

  1. Exécutez la procédure stockée, utilisez le mot-clé debug pour activer le débogueur en une seule étape :
CALL simple_addition(20, 30) debug;
Copier après la connexion
Copier après la connexion
  1. Exécutez selon les besoins la commande "s" pour exécuter le code ligne par ligne.
  2. Lors de l'exécution d'une ligne, saisissez "p result" pour obtenir les données actuelles.
  3. Exécutez la commande "s" pour continuer l'exécution du code.
  4. Débogage sans étape

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 :

  1. Définir une procédure stockée

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 ;
Copier après la connexion
  1. Activer le débogueur sans étape

Vous pouvez activer le débogueur sans étape à l'aide de la commande suivante :

CALL simple_subtraction(20, 30) debug_on_break;
Copier après la connexion

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.

  1. Utilisation du débogage non en une seule étape

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 :

  • c : Exécutez la procédure stockée jusqu'à ce que l'exécution soit terminée. ou un point d'arrêt est rencontré
  • b : Définir un point d'arrêt sur la ligne actuelle
  • r : Redémarrer la procédure stockée
  • p expression : Imprimer la valeur d'une valeur ou d'une expression

Voici un exemple utilisant un non-single- step debugger :

  1. Exécuter une procédure stockée, Et définir un point d'arrêt sur la ligne 3 :
CALL simple_subtraction(20, 30) debug_on_break(3);
Copier après la connexion
  1. Exécuter la procédure stockée jusqu'à ce qu'un point d'arrêt soit rencontré :
c;
Copier après la connexion
  1. Imprimer la valeur de la variable "result" :
p result;
Copier après la connexion
  1. Supprimer le point d'arrêt :
b -3;
Copier après la connexion
  1. Redémarrer les procédures stockées :
r;
Copier après la connexion
  1. Résumé

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal