Подтвердить что ты не робот

MySQL - Как передать исключение в хранимую процедуру?

Как создать исключение в хранимой процедуре в MySQL? Например:

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;

В MySQL я думаю, что нет способа выбросить исключение в хранимую процедуру, но я могу заставить ошибку, выбирая из несуществующей таблицы. Например:

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

Есть ли более элегантный способ?

Спасибо.

4b9b3361

Ответ 1

Начиная с MySQL 5.5 вы можете использовать SIGNAL и RESIGNAL для обработки ошибок. До этого не было возможности обрабатывать ошибки в MySQL. Единственный способ - запустить ошибочный запрос (например, вставить в не существующую таблицу).