关于事务的回滚

事务要写在service层:

如 1会员充值  2增加一条会员资金变化记录。当会员充值成功后必须记录。

如果写在controller层,则可能出现的问题:充值成功,但是记录是失败。(必须同时成功或者同时失败)



应该把充值和记录写在一个service里,才可以保证同时成功或者同时失败,这就是事务的回滚特性


for循环批量删除类也不能写在controller层,不然删除了一些之后就可能有些删除失败


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在PostgreSQL(简称PG或pgsql)中,事务是数据库操作的一个逻辑单元,用于保证数据的一致性和完整性。如果事务中的某条或多条SQL语句执行失败或者用户决定放弃这些更改,可以使用回滚机制撤销这些操作,回到事务开始前的状态。以下是关于事务回滚的基本概念: 1. **事务开始**:使用`BEGIN`语句开始一个事务,这时数据库会将事务状态设置为未提交(uncommitted)。 2. **事务提交**:当所有操作都成功完成,使用`COMMIT`语句正式提交事务,所做更改被保存到数据库中,事务状态变为已提交(committed)。 3. **事务回滚**:如果在事务过程中遇到错误或决定不执行后续操作,使用`ROLLBACK`语句会撤销自上一次`BEGIN`以来的所有更改,将事务状态恢复到开始前,就像这些操作从未执行过一样。 4. **自动回滚**:如果在一个事务中发生错误(如违反完整性约束),PostgreSQL也会自动回滚事务,而无需显式调用`ROLLBACK`。 5. **保存点**:如果事务中存在多个操作,还可以使用`SAVEPOINT`语句创建一个保存点,然后在需要的地方使用`ROLLBACK TO SAVEPOINT`回滚到特定的保存点。 相关问题: 1. PostgreSQL支持哪些类型的回滚策略? 2. 如何在事务中设置隔离级别以影响回滚行为? 3. 事务中的`SAVEPOINT`有什么作用和使用场景? 4. 当一个事务需要回滚,系统如何保证数据的一致性?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值