Maison >base de données >tutoriel mysql >Comment déboguer efficacement les procédures stockées MySQL avec une procédure de journalisation personnalisée ?
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.
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>
Pour exploiter cette procédure, appelez-la dans votre procédure stockée comme ceci :
<code class="sql">CALL test_procedure(1,2)</code>
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
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!