Этот сообщение в блоге также показывает, как это сделать в MySQl (если <= 6.0)
Ответ 2
В MySQL нет способа выбросить исключение в хранимую процедуру, но вы можете принудительно вызвать ошибку, выбрав из несуществующей таблицы.
Это помогает, если имя_таблицы дает описание ошибки.
Пример:
DELIMITER $$
CREATE PROCEDURE throw_exception (IN param1 INTEGER)
BEGIN
DECLARE testvar INTEGER;
SELECT testfield INTO testvar FROM atable WHERE id = param1 LIMIT 1;
IF testfield IS NULL THEN
/*throw the error here*/
SELECT * FROM
error_testfield_in_atable_not_found_youve_entred_a_nonexisting_id_in_throw_exception;
END IF;
END $$
DELIMITER ;