
EF+MySQL 多事务提交如何回滚
比如:事务1开始//.....逻辑代码事务1提交//事务2开始.......逻辑代码(这里需要用到事务1已经提交过的数据)事务2提交事务3开始...逻辑代码(这里需要用到...
比如: 事务1开始//
.....逻辑代码
事务1提交//
事务2开始
.......逻辑代码(这里需要用到事务1已经提交过的数据)
事务2提交
事务3开始
...逻辑代码(这里需要用到事务2已经提交过的数据)
事务3提交
注:因为事务2要用到事务1已经提交过的数据,事务3要用到事务2已经提交过的数据.所以无法合并到一个事务里面
这种情况,如果有一条出错, 有无办法让全部事务回滚? 展开
.....逻辑代码
事务1提交//
事务2开始
.......逻辑代码(这里需要用到事务1已经提交过的数据)
事务2提交
事务3开始
...逻辑代码(这里需要用到事务2已经提交过的数据)
事务3提交
注:因为事务2要用到事务1已经提交过的数据,事务3要用到事务2已经提交过的数据.所以无法合并到一个事务里面
这种情况,如果有一条出错, 有无办法让全部事务回滚? 展开
1个回答
展开全部
你试过合并到一个事务里不行的吗?
我做过这样的逻辑
事务开启
逻辑1 往a表里插入一条数据,获取该数据的id,,
逻辑2 往b表里插多条数据,把逻辑1获得的id代入,这里往b表插入多条数据是用的循环,每次循环做两个sql insert,一条是往b表插入一个数据,获得id,然后往c表批量插入多条数据,把获得的b表id带入
事务提交
我做过这样的逻辑
事务开启
逻辑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提交
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询