domingo, 1 de junio de 2014

Levantar una Excepción en MySql / Raise (Signal) MySql Exception

Es  muy cierto que en el front-end podemos realizar muchísimas de las validaciones necesarias a los datos. Sin embargo, en ocasiones resulta más conveniente realizarlo en el lado del servidor, no solo porque nos ayuda a cuidar la integridad de la base de datos, sino porque un cambio en un procedimiento almacenado, trigger, etc. no implica recompilar y redistribuir el ejecutable de la aplicación.

Resulta entonces que en ocasiones necesitamos lanzar una excepción desde un procedimiento almacenado como manera de avisar al front-end de que el proceso no pudo ser ejecutado correctamente. ¿Cómo hacerlo en MySql?. La instrucción básica es muy sencilla:

SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Mensaje de Error';

En el siguiente video podemos ver un ejemplo sencillo:



Esto funciona a partir de la versión 5.5 de MySql. Básicamente se asigna un código de error ('45000' en este caso) y un mensaje como texto de la excepción. Existen códigos de error predefinidos por MySql (ver la lista) aunque, dado que la excepción ó signal que queremos levantar es propia de nuestra aplicación/base de datos, es preferible utilizar un código que no exista en esa lista.

Si quisiéramos ser mucho más específicos en la información que queremos enviar como parte de la excepción, podemos establecer otros valores.

Mi primera consulta acerca de este tema me llevó a un tema en StackOverFlow y de allí busqué un poco más con un par de saltos en la web.

Saludos!

No hay comentarios.: