1.SQLEXCEPTION對(duì)應(yīng)存儲(chǔ)過(guò)程中的所有異常
2.通過(guò)輸出參數(shù),來(lái)返回事務(wù)是否執(zhí)行成功
3.一個(gè)疑問(wèn):為什么mysql事務(wù)執(zhí)行成功后,受影響的記錄數(shù)都是0呢?
下為SQL代碼:
-- Procedure "Users_Test" DDL
CREATE DEFINER=`root`@`%` PROCEDURE `Users_Test`(out pCode int)
begin
declare userID int default 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
begin
rollback;
SET pCode=1;
end;
set pCode = 0;
-- savepoint sp;
-- SET AUTOCOMMIT= 1;
start transaction;
-- call Users_WriteLog('haha ,log');
insert into Users_Login (LoginName,LoginPwd,Banned) values ('1234','0000',0);
set userID = @@IDENTITY;
insert into Users_Profile(UserID,UserName,CharactorName,HeadImageID,Sex,FromType,ProfileComplete)
values ( 5,'999999',10,1,1,0,1);
commit;
-- SELECT ROW_COUNT();
-- set rowcnt = mysql_affected_rows();
-- rollback to sp;
end;