Ответ 1
Начиная с MySQL 5.5 вы можете использовать SIGNAL и RESIGNAL для обработки ошибок. До этого не было возможности обрабатывать ошибки в 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;
Есть ли более элегантный способ?
Спасибо.
Начиная с MySQL 5.5 вы можете использовать SIGNAL и RESIGNAL для обработки ошибок. До этого не было возможности обрабатывать ошибки в MySQL. Единственный способ - запустить ошибочный запрос (например, вставить в не существующую таблицу).