/* 写了一个,语法都通过了,但是没有测试,你试试吧 */delimiter $$create procedure p_trans (out code Int) BeginDeclare Error Int;/* 定义错误Handler */ Declare Continue Handler For SQLException Set Error=1;Set Error=0;Start Transaction; /* 更新 */ update Bank_Count set Money=Money-100 where UserID=1001; /* 检查是否发生错误 */ if Error=1 Then rollback; set Code= 0; End IF; /* 更新 */ update Bank_Count set Money=Money+100 where UserID=1002; /* 检查是否发生错误 */ IF Error=1 Then rollback; set code = 1; End IF; set Code= 1; commit; End$$
BeginDeclare Error Int;/* 定义错误Handler */
Declare Continue Handler For SQLException
Set Error=1;Set Error=0;Start Transaction;
/* 更新 */
update Bank_Count
set Money=Money-100
where UserID=1001;
/* 检查是否发生错误 */
if Error=1 Then
rollback;
set Code= 0;
End IF;
/* 更新 */
update Bank_Count
set Money=Money+100
where UserID=1002;
/* 检查是否发生错误 */ IF Error=1 Then
rollback;
set code = 1;
End IF; set Code= 1;
commit;
End$$
error 好像在更新中没有赋值
调用proc经常在 prepareCall 时候抛出异常:
java.lang.NumberFormatException: For input string: " 6 "
高手指教是咋回事呢