MYSQL存储过程中事务和DECLARE EXIT/CONTINUE HANDLER的使用
1、DECLARE EXIT HANDLER FOR SQLEXCEPTION 语句后面可以跟一个 begin end的复合语句块,也可以直接跟一个简单语句例如 :DECLARE EXIT HANDLER FOR SQLEXCEPTION v_succ=0;
2、EXIT会在执行异常后执行执行 FOR SQLEXCEPTION 后的语句或块而整个停止下来;CONTINUE选项会在异常后继续执行,从而将id为2的记录写入到数据库中。
3、事务中请不要使用 create table等会执行隐式事务提交的命令,否则在会导致隐式提交事务,而不会回滚操作。
DROP PROCEDURE IF EXISTS p_test; delimiter // CREATE PROCEDURE p_test(OUT v_succ tinyint) BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN-- 这里可以用语句块,也可以直接一个语句ROLLBACK; END; SET v_succ=0; START TRANSACTION; -- 如果这里写入 insert语句,然后又执行了create table语句,那么回滚事务只能对create table以后的语句生效INSERT INTO tb_test (id) VALUES (1);SIGNAL SQLSTATE '45001' SET MYSQL_ERRNO=2000,MESSAGE_TEXT='故意触发异常';INSERT INTO tb_test (id) VALUES (2); COMMIT; SET v_succ=1; END;// delimiter ;
转载于:https://www.cnblogs.com/sdlz/p/8901697.html
MYSQL存储过程中事务和DECLARE EXIT/CONTINUE HANDLER的使用相关推荐
- mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别
在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...
- mysql存储过程set什么意思_浅谈MySQL存储过程中declare和set定义变量的区别
在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...
- MySQL存储过程之事务管理
MySQL存储过程之事务管理 ACID:Atomic.Consistent.Isolated.Durable 存储程序提供了一个绝佳的机制来定义.封装和管理事务. 1,MySQL的事务支持 MyS ...
- mysql扩展中如何处理结果集_我们如何处理MySQL存储过程中的结果集?
我们可以使用游标来处理存储过程中的结果集.基本上,游标允许我们迭代查询返回的一组行并相应地处理每一行. 为了演示在MySQL存储过程中CURSOR的用法,我们基于以下名为" student_ ...
- MySQL存储过程中的3种循环
MySQL存储过程中的3种循环 在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易 ...
- linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法
中文乱码无论在何时都是一个头疼的问题,mysql的存储过程参数也同样存在这个问题. 1.直接使用insert into语句没问题,能够正常插入汉字. 2.把insert into语句移到Procedu ...
- mysql 存储过程中 if else的使用 和赋值方式
mysql 存储过程中 if else的使用 和赋值方式 在mysql 中顶一个变量的语法 DECLARE variable_name datatype(size) DEFAULT default_v ...
- mysql存储过程中as_Mysql存储过程中的delimiter
这个命令与存储过程没什么关系吧. 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了. 默认情况下,delimiter是分号;.在命令行客户端中,如果有一行命令以分号结束, ...
- mysql 存储过程中limit
mysql 存储过程中limit 1.mysql的高版本(5.5),存储过程中的limit可以使用变量,如下:select * from student limit iStart,iNum; 2.my ...
最新文章
- JVM 性能调优之定位问题 实战篇
- python爬虫必会的23个项目
- java代码杨辉三角_用java实现杨辉三角的示例代码
- 一个c#开发的web绘流系统
- JQuery 方法查询大全
- 【itext学习之路】--5.对pdf进行盖章/签章/数字签名
- bootstraptable中responsehandle获取数据缺失_Python中的向量化字符串操作
- js检测密码强度的功能实现逻辑思路及实例
- 了解.Net Remoting从基础开始
- Java之JVM调优案例分析与实战(5) - 服务器JVM进程奔溃
- java arraylist 添加对象_如何在Java中将对象添加到ArrayList
- IIS5 IIS6 IIS7区别
- Android 中 shape 各种属性详细介绍
- 应用程序正常初始化失败(0xc0000135)
- Python核心编程的四大神兽:迭代器、生成器、闭包以及装饰器
- CorelDRAW X8 /CDR2020官方序列号密钥下载矢量绘图软件
- 单细胞测序之scater包数据分析教程复现
- LeetCode久不久来一题系列之Add Two Numbers
- 项目管理中的进度控制与目标计划
- ​【​观察】云栖大会共话JDM模式 揭秘创新背后的价值和启示
热门文章
- 使用 ‘In Place’ 直接从MySQL 5.0升级至5.7
- Kali渗透测试——netdiscover
- python \uxxxx转中文,Python列表中的字典 \uxxxx转中文,
- Linux 网络配置 ifconfig、ip、netstat 命令的使用
- 在服务器群集节点安装DHCP服务
- 微软3月补丁星期二修复71个漏洞,其中3个是0day
- Control Web Panel 中两个严重漏洞使Linux 服务器易受RCE攻击
- 西门子修复热门 CAD 库中的多个代码执行高危漏洞
- 微软WIP漏洞奖励计划新增基于攻击场景的奖励类别,最高$10万
- 开源的无客户端桌面远程网关 Apache Guacamole 被曝多个严重漏洞,可导致 RCE