Saltar al contenido

¿Cómo se depuran los procedimientos almacenados de MySQL?

Solución:

El seguimiento debug_msg se puede llamar al procedimiento para simplemente enviar un mensaje de depuración a la consola:

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 ;

Luego ejecute la prueba de esta manera:

CALL test_procedure(1,2)

Dará como resultado la siguiente salida:

** DEBUG:
** my first debug message
** DEBUG:
** arg1:1
** DEBUG:
** This message always shows up

Hago algo muy parecido a ti.

Por lo general, incluiré un parámetro DEBUG cuyo valor predeterminado es falso y puedo establecerlo en verdadero en tiempo de ejecución. Luego, envuelva las declaraciones de depuración en un bloque “If DEBUG”.

También utilizo una tabla de registro con muchos de mis trabajos para poder revisar los procesos y los tiempos. Mi código de depuración también se genera allí. Incluyo el nombre del parámetro de llamada, una breve descripción, los recuentos de filas afectados (si corresponde), un campo de comentarios y una marca de tiempo.

Las buenas herramientas de depuración son una de las lamentables fallas de todas las plataformas SQL.

Sí, existe una herramienta especializada para este tipo de cosas: MySQL Debugger.
ingrese la descripción de la imagen aquí

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *