MySql创建带事务操作的存储过程

DROP PROCEDURE IF EXISTS  test_sp1   ##如果存在先删除该储存过程

CREATE PROCEDURE test_proc( )    

    BEGIN    

    DECLARE t_error INTEGER DEFAULT 0;    ##定义错误标识变量t_error

    ## continue在这个地方的含义是,如果出现了SQLException异常,程序不中止,继续执行

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; ##若发生sqlExcetion异常则赋值t_error为1 

    

        START TRANSACTION;     ##开启事务

            INSERT INTO user VALUES(NULL, '男');       

            INSERT INTO user VALUES('哈哈', '男');       

    

        IF t_error = 1 THEN    ##判断是否有错误

            ROLLBACK;    ##回滚

        ELSE    

            COMMIT;     ##提交

        END IF;    ##结束IF条件

   select t_error;   ##查询t_error值,执行该存储过程,若无异常,则t_error为0,若有异常则t_error为1  

END  

##调用存储过程

call test_proc ##若无异常,则查询结果为0,若有异常则为1  。

猜你喜欢

转载自blog.csdn.net/weixin_42359392/article/details/84944539
今日推荐