Maison > base de données > tutoriel mysql > le corps du texte

Comment déboguer efficacement les procédures stockées MySQL avec une procédure de journalisation personnalisée ?

Barbara Streisand
Libérer: 2024-10-31 05:23:01
original
861 Les gens l'ont consulté

How to Efficiently Debug MySQL Stored Procedures with a Custom Logging Procedure?

Techniques de débogage améliorées pour les procédures stockées MySQL

Bien que l'insertion de valeurs de variables dans une table de débogage soit une méthode simple, il existe des moyens plus efficaces de déboguer les procédures stockées MySQL. Cet article explore une approche alternative qui exploite une procédure personnalisée pour enregistrer les messages de débogage sur la console.

Procédure de débogage personnalisée

La procédure debug_msg présentée ci-dessous vous permet d'afficher des messages de débogage de manière conditionnelle sur la console :

<code class="sql">DELIMITER $$

DROP PROCEDURE IF EXISTS `debug_msg`$$
DROP PROCEDURE IF EXISTS `test_procedure`$$

CREATE PROCEDURE debug_msg(enabled INTEGER, msg VARCHAR(255))
BEGIN
  IF enabled THEN
    select concat('** ', msg) AS '** DEBUG:';
  END IF;
END $$

CREATE PROCEDURE test_procedure(arg1 INTEGER, arg2 INTEGER)
BEGIN
  SET @enabled = TRUE;

  call debug_msg(@enabled, 'my first debug message');
  call debug_msg(@enabled, (select concat_ws('','arg1:', arg1)));
  call debug_msg(TRUE, 'This message always shows up');
  call debug_msg(FALSE, 'This message will never show up');
END $$

DELIMITER ;</code>
Copier après la connexion

Utilisation de la procédure personnalisée

Pour exploiter cette procédure, appelez-la dans votre procédure stockée comme ceci :

<code class="sql">CALL test_procedure(1,2)</code>
Copier après la connexion

Analyse de sortie

L'exécution de la commande ci-dessus générera le résultat suivant :

** DEBUG:
** my first debug message
** DEBUG:
** arg1:1
** DEBUG:
** This message always shows up
Copier après la connexion

Comme évident, cette approche vous permet d'afficher facilement les messages de débogage sans la surcharge de création et d'insertion dans une table de débogage.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!