SQL带事务的存储过程添加功能
create PROCEDURE SP_AddRole(in roleName varchar(20),in roleCode VARCHAR(20),in deptId INT)
BEGIN
/* 事务*/
DECLARE _err int DEFAULT 0;
DECLARE _Id int default 0;
DECLARE CONTINUE HANDLER for SQLEXCEPTION set _err=1;
start TRANSACTION;
IF(roleName<>'' and rolecode<>'' && deptId>=0)
THEN
insert into hr.base_roles(RoleName,RoleCode) VALUES(roleName,roleCode);
SELECT LAST_INSERT_ID() into _Id;
IF(_err>0)
THEN
ROLLBACK;
end if;
insert into hr.base_detpandrolerelation(DeptID,RoleID) values(deptId,_Id);
IF(_err>0)
THEN
ROLLBACK;
end if;
end if;
COMMIT;
BEGIN
/* 事务*/
DECLARE _err int DEFAULT 0;
DECLARE _Id int default 0;
DECLARE CONTINUE HANDLER for SQLEXCEPTION set _err=1;
start TRANSACTION;
IF(roleName<>'' and rolecode<>'' && deptId>=0)
THEN
insert into hr.base_roles(RoleName,RoleCode) VALUES(roleName,roleCode);
SELECT LAST_INSERT_ID() into _Id;
IF(_err>0)
THEN
ROLLBACK;
end if;
insert into hr.base_detpandrolerelation(DeptID,RoleID) values(deptId,_Id);
IF(_err>0)
THEN
ROLLBACK;
end if;
end if;
COMMIT;
END