113 votes

Imprimer les informations de débogage de la procédure stockée dans MySQL

Existe-t-il un moyen dans MySQL d'imprimer des messages de débogage vers stdout, tentable ou logfile ? Quelque chose comme :

  • print dans SQLServer
  • DBMS_OUTPUT.PUT_LINE dans Oracle

16voto

Le moyen rapide d'imprimer quelque chose est :

select '** Place your mesage here' AS '** DEBUG:';

6voto

RC. Points 15804

Dr Dobbs a un bon article sur le débogage des procédures stockées MySQL qui incluent la journalisation.

Dr Dobbs Débogage des procédures stockées MySQL

5voto

Voici comment je déboguerai :

CREATE PROCEDURE procedure_name() 
BEGIN
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        SHOW ERRORS;  --this is the only one which you need
        ROLLBACK;   
    END; 
    START TRANSACTION;
        --query 1
        --query 2
        --query 3
    COMMIT;
END 

Si la requête 1, 2 ou 3 lance une erreur, le GESTIONNAIRE attrapera la SQLEXCEPTION et affichera les erreurs pour nous. Remarque : AFFICHER LES ERREURS doit être la première instruction dans le GESTIONNAIRE.

5voto

Rob Cooke Points 578

Je crée généralement une table de journalisation avec une procédure stockée pour y accéder. Appeler la procédure de journalisation là où elle est nécessaire à partir de la procédure en cours d'élaboration.

En regardant d'autres messages sur cette même question, cela semble être une pratique courante, bien qu'il existe quelques alternatives.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X