MYSQL存储过程中事务和DECLARE EXIT/CONTINUE HANDLER的使用

匿名 (未验证) 提交于 2019-12-02 22:06:11
 1 -- 1、DECLARE EXIT HANDLER FOR SQLEXCEPTION 语句后面可以跟一个 begin end的复合语句块,也可以直接跟一个简单语句例如 :DECLARE EXIT HANDLER FOR SQLEXCEPTION v_succ=0;  3 -- 2、EXIT会在执行异常后执行执行 FOR SQLEXCEPTION 后的语句或块而整个停止下来;CONTINUE选项会在异常后继续执行,从而将id为2的记录写入到数据库中。  4   5 DROP PROCEDURE IF EXISTS p_test;  6 delimiter //  7 CREATE PROCEDURE p_test(OUT v_succ tinyint)  8 BEGIN  9 DECLARE EXIT HANDLER FOR SQLEXCEPTION  10 BEGIN 11 SET v_succ=0; 12 ROLLBACK; 13 END; 14 SET v_succ=1; 15 START TRANSACTION; 16   INSERT INTO tb_test (id) VALUES (1); 17   SIGNAL SQLSTATE '45001' SET MYSQL_ERRNO=2000,MESSAGE_TEXT='故意触发异常'; 18   INSERT INTO tb_test (id) VALUES (2); 19 COMMIT; 20 END;// 21 delimiter ;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!