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;
END
原文地址:https://www.cnblogs.com/GuoLianSheng/p/13223643.html