关于MySQL存款和储蓄进程13分管理的少数体验

发布时间:2019-05-04  栏目:NoSQL  评论:0 Comments

DROP PROCEDURE IF EXISTS `SP_MODEL`;

DELIMITER ;;
CREATE PROCEDURE `SP_MODEL`(IN V_TYPE INT)
BEGIN
/**********储存进度模版,结合了·重回自定义错误音信·错误退出··事物回滚·的意义***********/
DECLARE V_TEST INT DEFAULT 0;

DECLARE V_ERR_NO INT DEFAULT 0;
DECLARE V_ERR_MSG VA福睿斯CHA牧马人(100) DEFAULT ‘推行成功’;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND SET
V_ERR_NO=1;

— CREATE TABLE `test_error` (
— `a` int(11) NOT NULL,
— `b` int(11) DEFAULT NULL,
— PRIMARY KEY (`a`)
— ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

— TRUNCATE TABLE TEST_ERROR;
— CALL SP_MODEL(1);
— SELECT * FROM TEST_ERROR;

START TRANSACTION;

Label:– 实施进程中出现谬误则跳出此Label
BEGIN

IF V_TYPE=1 THEN
INSERT INTO TEST_ERROR(a,b) VALUES(1,1);
INSERT INTO TEST_ERROR(a,b) VALUES(1,1);

IF V_ERR_NO=1 THEN
SET V_ERR_MSG=’您曾经插过啦,别再另行插~’;
— LEAVE Label;
END IF;

SET V_TEST=1;

INSERT INTO TEST_ERROR(a,b) VALUES(3,’a’);
IF V_ERR_NO=1 THEN
SET V_ERR_MSG=’尺寸不对,插不进来~’;
LEAVE Label;
END IF;

INSERT INTO TEST_ERROR(a,b) VALUES(4,1);

SET V_TEST=2;

ELSE
SET V_ERR_MSG=’传入参数V_TYPE不正确’;
SET V_ERR_NO=壹; — 直接设置此变量值为一,主动抛出至极
LEAVE Label;
END IF;

END Label;

IF V_ERR_NO=1 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;

SELECT V_ERR_NO AS ERR_NO,V_ERR_MSG AS ERR_MSG, V_TEST AS TEST;
— 重临实践结果
END

;;

DELIMITER ;

留下评论

网站地图xml地图