找回密码
 立即注册

QQ登录

只需一步,快速开始

njhg001

金牌服务用户

68

主题

193

帖子

759

积分

金牌服务用户

积分
759

微信认证勋章

[已处理] 关于事务命令

njhg001
金牌服务用户   /  发表于:2024-10-31 17:03  /   查看:309  /  回复:3
1金币
本帖最后由 njhg001 于 2024-10-31 17:06 编辑

在一个服务端命令中启用了事务命令



1、在某个数据表中添加一条记录
2、调用一个服务端命令,向其他数据表添加数据
3、调用服务端命令,存储操作日志

问题:
a、如果第2步产生错误了,结果应该是事务没有成功吗?
b、如果在第2步服务端命令中,增加一个判断条件,满足这个条件,就需要整个回滚,相当于所有数据操作都取消,请问如何处理?

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

3 个回复

倒序浏览
Erik.Xue讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2024-10-31 17:38:06
沙发
本帖最后由 Erik.Xue 于 2024-11-20 16:26 编辑

您好,
1、如果里面的事务报错,那么会回滚到外层;

2、事务有传递性,服务端命令中的服务端命令,建议如果使用try catch包起来,如果捕获到错误,返回一个非0的错误码,那么外层事务发现有报错,就会回滚整个操作。
回复 使用道具 举报
njhg001
金牌服务用户   /  发表于:2024-11-1 16:04:17
板凳
Erik.Xue 发表于 2024-10-31 17:38
您好,事务有传递性,服务端命令中的服务端命令,建议如果使用try catch包起来,如果捕获到错误,返回一个 ...

不太明白。
能不能麻烦给个小demo,前端调用服务端命令A,在服务端命令A中,先在数据表table_1中更新或新增一条数据,然后调用服务端命令B,在B中更新另一个表table_2的数据,如何使用事务,以确保中间任何一个地方出错都能回滚
回复 使用道具 举报
Erik.Xue讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2024-11-1 16:40:24
地板
很简单,大佬可以自己多测试一下,就明白了哈。上面说了,如果可以用try catch命令把数据表操作命令包起来。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部