百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> MySQL到底支不支撑事务嵌套?
分享文章到:

MySQL到底支不支撑事务嵌套?

发布时间:08/01 来源:未知 浏览: 关键词:
比来开发中碰到了运用MySQL,屡次开启事务,涌现了数据错乱题目,伪代码如下:begin;#操纵1begin;#操纵2rollback;施行完后涌现了操纵1的数据真正写入,只要操纵2的数据回滚了。在首先个事务没有提交或回滚 比来开发中碰到了运用MySQL,屡次开启事务,涌现了数据错乱题目,伪代码如下:

begin;
# 操纵1
begin;
# 操纵2
rollback;

施行完后涌现了操纵1的数据真正写入,只要操纵2的数据回滚了。在首先个事务没有提交或回滚时,再开启第二个事务时,会主动提交首先个事务。

这显明不相符心理预测,并且也没法回滚一局部操纵。那么题目来了,MySQL 支不支撑事务嵌套呢

这个题目很难正确答复支撑还是不支撑!

第一,调取屡次begin的写法,在MySQL里确定是没法第一事务嵌套的。经过群内一名伴侣的提示,理解到MySQL中有一个叫savepoint和rollback to的语句。

示例代码:

DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
 
begin;
 
insert into `test`(`name`) values('111');
 
SAVEPOINT p1;
 
insert into `test`(`name`) values('222');
 
ROLLBACK TO p1;
 
commit;

终究施行效果,test表中只要111这个数据,实现了局部操纵的回滚操纵。同理也以免了屡次开启事务,致使前一个事务被提交的题目。

可能savepoint和rollback to语句并不克不及称之为事务嵌套,也不克不及说MySQL是支撑还是不支撑事务嵌套。总之通过savepoint和rollback to,是可以用来达到一些事务嵌套特性的。

以上就是MySQL到底支不支撑事务嵌套?的细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板