una tablas recomendaciones queries porque optimizador lento lenta las dañan cuello consulta consejos como botella agilizar mysql stored-procedures handler

recomendaciones - porque se dañan las tablas en mysql



Cómo atrapar y volver a lanzar todos los errores en MySQL (1)

Para capturar todas las excepciones de SQL, use:

DECLARE EXIT HANDLER FOR SQLEXCEPTION

SQLWARNINGS se puede utilizar para detectar advertencias también.

Dentro del controlador de excepción, para generar el error o advertencia que acaba de ser capturado, use:

RESIGNAL

Consulte la documentación de la declaración RESIGNAL:

http://dev.mysql.com/doc/refman/5.5/en/resignal.html

Esto está disponible desde MySQL 5.5

Parece que no puedo encontrar en ninguna parte cómo atrapar y volver a lanzar cualquier error o advertencia que pueda ocurrir en un procedimiento.

Lo que quiero es la sintaxis para hacer lo siguiente:

create procedure myProcedure() begin declare exit handler for ANYTHING_WRONG_THAT_CAN_BE_CAUGHT_WARNINGS_INCLUDED begin rollback; RE_THROW THE_THING_THAT_WAS_CAUGHT; end; start transaction; -- do some stuff commit; end; //

La razón es que quiero forzar una reversión de un error o advertencia, pero dejar que el cliente decida qué hacer con el error específico.

Las áreas de mayúsculas son las porciones donde no sé qué poner.

¡Gracias por cualquier ayuda!

Editar -------

Desde entonces, aprendí que no es posible hacer lo que he pedido: ''(.

En cambio, tengo un solo error para todo lo que sale mal y usé el siguiente código:

declare exit handler for sqlwarning, sqlexception begin rollback; call error(); end;

(error () no existe)