在存储过程中使用了事务,分两个语句插入两张表,要的效果是如果发生异常,就回滚。
现在的问题是:能正常回滚,但是不知道怎么在程序中判断。在存储过程中定义了Handler:DECLARE CONTINUE HANDLER FOR SQLEXCEPTION ROLLBACK; 程序里面的try catch捕获不到异常,我认为是因为异常已经在存储处理了。最好能不用输出参数。
现在的问题是:能正常回滚,但是不知道怎么在程序中判断。在存储过程中定义了Handler:DECLARE CONTINUE HANDLER FOR SQLEXCEPTION ROLLBACK; 程序里面的try catch捕获不到异常,我认为是因为异常已经在存储处理了。最好能不用输出参数。
#产生异常时,回滚,并且制造错误以便程序中能以捕获异常的方式获知操作失败。
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SELECT * FROM `CreateExceptionAfterRollback` LIMIT 1;
END;