码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-04-21 16:08:49      阅读:2255      评论:0      收藏:0      [点我收藏+]

标签:简单   mil   写入   简单语句   tiny   begin   写入到数据库   sage   使用   

 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的使用

标签:简单   mil   写入   简单语句   tiny   begin   写入到数据库   sage   使用   

原文地址:https://www.cnblogs.com/sdlz/p/8901697.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!