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 。