MYSQL存储过程中事务和DECLARE EXIT/CONTINUE HANDLER的使用
Posted lybingyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL存储过程中事务和DECLARE EXIT/CONTINUE HANDLER的使用相关的知识,希望对你有一定的参考价值。
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 ;
以上是关于MYSQL存储过程中事务和DECLARE EXIT/CONTINUE HANDLER的使用的主要内容,如果未能解决你的问题,请参考以下文章