2012-06-11 3 views
2

Я использую следующий обработчик Exception в моем хранимом procuder.Возврат Исключение из хранимой процедуры mysql

DECLARE EXIT HANDLER FOR SQLEXCEPTION 

Begin 
     DROP TABLE temp_checkForDuplicate; 
     SET outDone = -1; 
End; 

Здесь я нашел код для конкретного исключения «1062»

DECLARE EXIT handler for 1062 set o_error_status := "Duplicate entry in table"; 

Что делать, если я не знаю номер исключения: Как обрабатывать любое исключение и бросить его номер и его сообщение?

+0

Я думаю, что нам нужно больше информации о SP, иногда ошибка может быть в другом месте – jcho360

+0

ошибка может быть в любом месте .. Вот у мы используем обработчик, то, как получить, что ?? – deeps

ответ

0

В версиях MySQL до 5.5 вы не можете этого сделать.

Версия 5.5 представила Сигналы, которые обеспечивают механизм для возврата определенных кодов ошибок или условий.

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

Версия 5.6 была добавлена ​​"Get Diagnostics", которое обеспечивает необходимую Вам информацию.

http://dev.mysql.com/doc/refman/5.6/en/get-diagnostics.html

Вы также можете найти соответствующую информацию в этих SO Вопросы.

MySQL Stored Procedure Error Handling

How to raise an error within a MySQL function

Смежные вопросы