管理员权限也删不掉的顽固文件;比如Oracle的ewallet.p12文件

 

 

 

 

 

再次删除:就删掉了

 

 

 

 

 

  • 21
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
这段代码是一个数据库事务的示例。我会逐行解释并进行翻译: ```go // 开启事务 tx, err := r.data.db.Tx(ctx) if err != nil { return nil, biz.ErrRecordAlreadyExists } ``` 这段代码是开启一个数据库事务。`r.data.db` 是一个数据库连接对象,`Tx(ctx)` 方法用于创建一个新的事务。如果出现错误,会返回 `ErrRecordAlreadyExists` 错误。 ```go // 修改 sum, err := tx.Ewallet.Update().SetBalance(req.Balance).SetFrozenAmount(req.Frozen_Amount).Where(ewallet.HasCustomerWith(customer.ID(req.Id))).Save(ctx) if err != nil { _ = tx.Rollback() return nil, v1.ErrorUniversalError(err.Error()) } else if sum != 1 { _ = tx.Rollback() return nil, v1.ErrorUniversalError(err.Error()) } ``` 这段代码是在事务中进行数据库的修改操作。使用 `tx.Ewallet.Update()` 来创建一个更新操作,并使用 `SetBalance(req.Balance)` 和 `SetFrozenAmount(req.Frozen_Amount)` 来设置相应的字段值。`Where()` 方法用于指定更新的条件。`Save(ctx)` 方法用于保存修改,并返回受影响的行数。如果出现错误,会进行事务回滚,并返回相应的错误信息。 ```go // 查询 result, err := tx.Ewallet.Query().Where(ewallet.HasCustomerWith(customer.ID(req.Id))).Only(ctx) if err != nil { _ = tx.Rollback() return nil, v1.ErrorUniversalError(err.Error()) } ``` 这段代码是在事务中进行数据库的查询操作。使用 `tx.Ewallet.Query()` 来创建一个查询操作,并使用 `Where()` 方法指定查询的条件。`Only(ctx)` 方法用于执行查询,并返回单个结果。如果出现错误,会进行事务回滚,并返回相应的错误信息。 ```go // 缓存处理 cacheKey := r.CacheKey(req.Id) _ = r.data.cache.Del(ctx, cacheKey) err = r.data.setCache(ctx, cacheKey, result) if err != nil { _ = tx.Rollback() return nil, biz.ErrRecordAlreadyExists } ``` 这段代码是处理缓存的逻辑。首先,通过 `r.CacheKey(req.Id)` 方法生成缓存的键名。然后,通过 `r.data.cache.Del(ctx, cacheKey)` 删除缓存中的对应数据。接着,使用 `r.data.setCache(ctx, cacheKey, result)` 将查询结果存入缓存。如果出现错误,会进行事务回滚,并返回相应的错误信息。 ```go // 执行事务 err = tx.Commit() if err != nil { // 事务回滚 _ = tx.Rollback() return nil, biz.ErrRecordAlreadyExists } ``` 最后,通过 `tx.Commit()` 方法提交事务,将之前的修改操作持久化到数据库中。如果出现错误,会进行事务回滚,并返回相应的错误信息。 事务是一种用于确保数据库操作的一致性和可靠性的机制。它可以将多个数据库操作作为一个原子性操作,要么全部执行成功,要么全部回滚。在这段代码中,事务被用于确保修改和查询的操作是原子的,同时在出现错误时可以回滚到之前的状态,保证数据的完整性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值