在存储过程中使用了事务,分两个语句插入两张表,要的效果是如果发生异常,就回滚。
现在的问题是:能正常回滚,但是不知道怎么在程序中判断。在存储过程中定义了Handler:DECLARE CONTINUE HANDLER FOR SQLEXCEPTION ROLLBACK; 程序里面的try catch捕获不到异常,我认为是因为异常已经在存储处理了。最好能不用输出参数。
现在的问题是:能正常回滚,但是不知道怎么在程序中判断。在存储过程中定义了Handler:DECLARE CONTINUE HANDLER FOR SQLEXCEPTION ROLLBACK; 程序里面的try catch捕获不到异常,我认为是因为异常已经在存储处理了。最好能不用输出参数。
解决方案 »
- c连接postgresql问题:无法定位序数284于动态链接库SSLEAY32.dll上
- mysql创建表的字段 默认为 0值
- PREPARE stmt1 FROM @v; EXECUTE stmt1;的结果集怎么得到?
- 蔡鸟请教关于Postgres数据导入的问题,急~~~
- 在mysql 5.0 里直接输入数据时 都是?号,请问怎么解决?
- MySQL Server的安装问题
- 由mysql引起的java.net.SocketException,有人能解决吗?
- 请教一句sql语句 ,100分
- 如何使用mysql_real_query存储带"\0"的数据,或者请提出其它方法
- 求大神帮我优化下改改mysql sql语句
- Linux C连接数据库内存问题
- libmysqlclient问题
#产生异常时,回滚,并且制造错误以便程序中能以捕获异常的方式获知操作失败。
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SELECT * FROM `CreateExceptionAfterRollback` LIMIT 1;
END;