中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

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

 山东大明消毒科技有限公司

下载贤集网APP入驻自媒体

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 ;

复制代码


最新回复

还没有人回复哦,抢沙发吧~

发布回复

为您推荐

热门交流