Ведение журнала с помощью обработчиков MYSQL - PullRequest
0 голосов
/ 06 марта 2012

Я надеюсь, что это не просто дублирование этого вопроса .

Я прочитал документацию, но я не думаю, что полностью понимаю, как правильно это использовать.

Я хотел бы отлавливать ошибки, возникающие в моих хранимых процедурах, и записывать эти ошибки в таблицу. Это в основном для экспериментальных целей. Мне интересно, есть ли способ отловить любую ошибку, а затем записать код и ошибку в таблицу.

Пока, похоже, мне нужно объявлять разные обработчики для каждой ошибки. Это правильно или есть способ перехватить все ошибки и получить код и сообщение.

Например, в каждой хранимой процедуре я объявляю пару обработчиков

DECLARE EXIT HANDLER FOR 1062
BEGIN
    SELECT 'Attempt to create a duplicate entry occurred';
END;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SELECT 'Unexpected Error Ocurred';
END; 

Вместо

 SELECT 'custom message'; 

Я хочу сделать

INSERT INTO errorLogs(code, message);

Возможно ли это без объявления загрузки обработчиков и добавления каждого кода вручную?

Действительно ценю любую помощь, указывающую мне правильное направление.

1 Ответ

0 голосов
/ 06 марта 2012

Похоже, что на самом деле это невозможно, пока я не смогу использовать обновленную версию MYSQL с ДИАГНОСТИКОЙ. Я нашел этот вопрос , который в основном совпадает с моим. Ах, хорошо.

...