2012-02-03 30 views
13

cómo generar una excepción en el procedimiento almacenado en MySQL? Por ejemplo:MySQL - ¿Cómo lanzar una excepción en el procedimiento almacenado?

CREATE PROCEDURE SALES() 
BEGIN 

STATEMENT... 
STATEMENT... 
STATEMENT... 

IF (PRICE >= 500) THEN 
/** THROWS AN EXCEPTION.... 
    WHAT DO TO STOP THE PROCEDURE. **/ 
END IF; 

STATEMENT... 
STATEMENT... 
STATEMENT... 

END; 

En MySQL Creo que no hay manera de lanzar una excepción en un procedimiento almacenado, pero puedo forzar un error al seleccionar de una tabla no existente. Por ejemplo:

IF (PRICE > 500) THEN 
    /*throw the error here*/ 
    SELECT * FROM price_greater_than_500_in_throw_exception; 
END IF; 

¿Hay una manera más elegante?

Gracias.

Respuesta

13

Desde MySQL 5.5 puede usar SIGNAL y RESIGNAL para el tratamiento de errores. Antes de eso, no había forma de manejar los errores en MySQL. La única forma es ejecutar una consulta errónea (por ejemplo, insertar en una tabla no existente).

Cuestiones relacionadas