Mensajes bonitos en MySQL-MariaDB con Common_schema

Posted by in MariaDB, MySQL

Una de las características que más me gusta de Common_schema es la posibilidad de ir escribiendo mensajes durante la ejecución de un procedimiento, y una vez concluido, mostrarlos, pero diferenciando un mensaje por cada registro.

En definitiva, ejecutamos una tarea de un procedimiento almacenado, y vamos completando el mensaje. Hay un separador de línea que es la clave de todo.

Os pongo un procedimiento de ejemplo:

CREATE PROCEDURE `probando`()
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
# Configuramos Mensaje y Separador
SET @message := ''; -- Mensaje
SET @sep := '\n'; -- Separador de Mensajes

SET @message := CONCAT(@message, 'Linea 1', @sep);
SET @message := CONCAT(@message, 'Linea 2', @sep);


# Mensaje de ejecución de CREACION de TABLAS CRUZADAS
CALL common_schema.prettify_message('Ejemplo', common_schema.trim_wspace(@message));

END

En mi opinión, cuando trabajo con procedimientos grandes o largos, es bueno informar al usuario del resultado obtenido, y en lugar de usar SELECTs, esta opción es más elegante! Aquí tenemos esta procedimiento ejecutado, con su resultado:

Probando prettify_message

Probando prettify_message

Espero os sirva!

NOTA sobre un Bug de MySQL en HeidiSQL:

Cuando muestras el código de un procedimiento en el que se incluye \n es posible que no lo veas bien. Se trata de un bug de MySQL, tal y como se recoge aqui y aqui. Pongo esta aclaración a raíz de una consulta que realicé en el foro de heidiSQL sobre el tema.

Google+ Comments - Comentarios Google+