EF+MySQL 多事务提交如何回滚

比如:事务1开始//.....逻辑代码事务1提交//事务2开始.......逻辑代码(这里需要用到事务1已经提交过的数据)事务2提交事务3开始...逻辑代码(这里需要用到... 比如: 事务1开始//
.....逻辑代码
事务1提交//

事务2开始
.......逻辑代码(这里需要用到事务1已经提交过的数据)
事务2提交

事务3开始
...逻辑代码(这里需要用到事务2已经提交过的数据)
事务3提交

注:因为事务2要用到事务1已经提交过的数据,事务3要用到事务2已经提交过的数据.所以无法合并到一个事务里面
这种情况,如果有一条出错, 有无办法让全部事务回滚?
展开
 我来答
胃疼shine
2019-04-26 · TA获得超过257个赞
知道小有建树答主
回答量:295
采纳率:79%
帮助的人:140万
展开全部
你试过合并到一个事务里不行的吗?
我做过这样的逻辑
事务开启
逻辑1 往a表里插入一条数据,获取该数据的id,,
逻辑2 往b表里插多条数据,把逻辑1获得的id代入,这里往b表插入多条数据是用的循环,每次循环做两个sql insert,一条是往b表插入一个数据,获得id,然后往c表批量插入多条数据,把获得的b表id带入
事务提交
追问
无法合并 MYSQL 需要用到事务提交后的数据
追答

1、那我想问 事务提交后的数据和事务提交前的数据难道不一样吗,除了自增主键id是由mysql生成的以外  其他提交完的数据应该不会改变啊,你直接用就可以了啊

2、另外假设你的提交前的数据和提交后的数据发生了变化,那你试试用select 从数据库里查提交的数据,我用mysql给你测试了一下 是可以的,截图在下面。。

3、最后如果还是不行的话,可以用事务嵌套,,在你的代码最外层嵌套一个事务,例如

事务0开始

事务1开始//
.....逻辑代码
事务1提交//

事务2开始
.......逻辑代码(这里需要用到事务1已经提交过的数据)
事务2提交

事务3开始
...逻辑代码(这里需要用到事务2已经提交过的数据)
事务3提交

事务0提交

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式