事务处理专题测试
考察知识点
- Begin/Commit/Rollback 基本事务操作
- 事务中的错误处理
- 嵌套事务与 Savepoint
- 事务隔离级别
在 GORM 中,如何开始一个事务?
以下关于 GORM 事务使用的描述,哪些是正确的?
使用 db.Transaction 时,如果函数返回______则自动提交事务,如果返回______则自动回滚事务。
使用 db.Begin() 开始事务后,如果忘记调用 tx.Commit(),事务会自动回滚。
GORM 如何实现嵌套事务(保存点)?
以下哪些场景适合使用嵌套事务(保存点)?
使用 tx.SavePoint("______") 创建保存点后,可以使用 tx.RollbackTo("______") 回滚到该点,而不影响保存点之前的操作。
在 GORM 中,如何在多个方法之间传递同一个事务?
以下哪些是在 GORM 中传递事务的推荐方式?
GORM 的 Session 可以用来传递事务状态,多个方法共用同一个 Session 就共用同一个事务连接。
以下哪个是 SQL 标准定义的事务隔离级别中,最低的隔离级别?
ReadCommitted 隔离级别可以避免以下哪些问题?
在 GORM 中设置事务隔离级别可以使用 db.Session(&gorm.Session{___________: true}).______() 后执行原生 SQL 设置,或使用数据库特定的配置方法。
MySQL InnoDB 引擎默认使用 RepeatableRead 隔离级别。
GORM 中实现软删除最简单的方式是什么?
使用 gorm.DeletedAt 实现软删除后,以下哪些操作会受到影响?
如果某个字段有唯一索引,使用软删除后,删除的记录不能再次使用相同的值插入。
如何查询包括已删除的所有记录?
以下哪些场景需要使用 Unscoped() 方法?
GORM 对包含 DeletedAt 字段的模型,普通查询会自动添加________________________条件,使用________方法可以取消该过滤。
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验