У меня есть большая процедура MySQL с транзакционной фиксацией, вызванная из PHP с некоторыми циклами: блоки макс.50 записей, и у меня всего 24213 записей.
Один из этих циклов создает некоторые проблемы, но я не могу получить возвращенную ошибку.Я пытался с HANDLER FOR SQLEXCEPTION, с SHOW ERRORS и RESIGNAL, но я ничего не получил об этой ошибке.
Каждое выполнение регистрирует эти результаты в таблице как журнал, и я хочу зарегистрировать этоошибка в нем.
EXIT HANDLER FOR SQLEXCEPTION:
CREATE PROCEDURE `Procedure01`(
IN _Ini INT,
IN _End INT,
IN _CalcDate DATE
)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
RESIGNAL;
SHOW ERRORS;
ROLLBACK;
SET @sql = CONCAT("INSERT INTO `Log_Procedure` (`From`,`To`,`Datetime`,`Comment`) VALUES ( '", _Ini, "','", _End, "',NOW(),'ERROR: SQLException');");
PREPARE s FROM @sql;
EXECUTE s;
DEALLOCATE PREPARE s;
END;
...
Я ничего не получил от этого SHOW ERRORS, вызванного из PHP или с прямым CALL из phpMyAdmin.
ДругойОпция, которая может быть хорошей, это получить отдачу от выполнения такого рода:
SET @sql = CONCAT("INSERT INTO `Log_Procedure` (`From`,`To`,`Datetime`,`Comment`) VALUES ( '", _Ini, "','", _End, "',NOW(),'ERROR: SQLException');");
PREPARE s FROM @sql;
EXECUTE s;
DEALLOCATE PREPARE s;
Любая помощь будет оценена!