如何知道存储过程是否引发异常?
问题描述:
我有以下结构的存储过程:如何知道存储过程是否引发异常?
CREATE PROCEDURE MyStoredProcedure(IN code INTEGER) BEGIN
DECLARE EXIT handler FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SET autocommit = 1;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
END;
SET autocommit = 0;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
-- code here
COMMIT;
SET autocommit = 1;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
END;
而且我使用通过PDO调用它:
$dbh->prepare("CALL MyStoredProcedure(?);");
它工作正常,但我需要一个方式,如果从PHP dected该存储过程引发了一个异常,它得到了“回滚”或者没有错误。这可以做到吗?
答
添加一个出参数的过程,并在出现错误的情况下有0或成功的1