首页/ 学科题库/ gorm/ 软删除机制专题测试
gorm 模拟试卷

软删除机制专题测试

16 题 35 分钟 难度:★★
  • gorm.DeletedAt 软删除字段
  • 软删除与硬删除的区别
  • 查询时自动过滤已删除记录
  • Unscoped 恢复与永久删除

试卷习题(16 题)

参考答案在文末
判断题
1
判断题

包含 DeletedAt 字段的模型,查询时 GORM 会自动添加 WHERE deleted_at IS NULL 条件。

A

对

B

错

2
判断题

db.Unscoped().Where("status = ?", 0).Delete(&User{}) 会物理删除所有匹配记录。

A

对

B

错

单选题
3
单选题

如何监控 GORM 连接池的状态(如空闲连接数、活跃连接数)?

A

使用 db.Stats() 方法获取 sql.DBStats

B

使用 db.PoolStats() 方法

C

查询数据库系统表

D

查看 GORM 日志输出

4
单选题

如何监控 GORM 连接池的状态(如空闲连接数、活跃连接数)?

A

使用 db.Stats() 方法获取 sql.DBStats

B

使用 db.PoolStats() 方法

C

查询数据库系统表

D

查看 GORM 日志输出

5
单选题

在 GORM 中对软删除的模型执行真正的物理删除,应该使用什么方法?

A

Delete() 方法

B

Unscoped().Delete() 方法

C

HardDelete() 方法

D

ForceDelete() 方法

6
单选题

GORM 的底层连接池是基于哪个 Go 标准库实现的?

A

database/sql

B

net/http

C

sync.Pool

D

container/list

7
单选题

GORM 的底层连接池是基于哪个 Go 标准库实现的?

A

database/sql

B

net/http

C

sync.Pool

D

container/list

8
单选题

GORM 的底层连接池是基于哪个 Go 标准库实现的?

A

database/sql 库

B

net/http 库

C

sync.Pool 库

D

container/list 库

9
单选题

在 GORM 中恢复一条软删除的记录,正确的做法是?

A

使用 Unscoped 找到记录后,将 DeletedAt 设置为 nil 并 Save

B

使用 db.Restore() 方法

C

使用 db.Undelete() 方法

D

软删除的记录无法恢复

10
单选题

在 GORM 中对软删除的模型执行真正的物理删除,应该使用什么方法?

A

db.Delete()

B

db.Unscoped().Delete()

C

db.HardDelete()

D

db.ForceDelete()

11
单选题

实现软删除应该使用什么字段类型?

A

time.Time

B

*time.Time

C

gorm.DeletedAt

D

int64

12
单选题

在 GORM 中对软删除的模型执行真正的物理删除,应该使用什么方法?

A

db.Delete()

B

db.Unscoped().Delete()

C

db.HardDelete()

D

db.ForceDelete()

13
单选题

如何查询包含已删除记录的所有数据?

A

db.Find(&users)

B

db.Unscoped().Find(&users)

C

db.IncludeDeleted().Find(&users)

D

db.Where("deleted_at IS NOT NULL").Find(&users)

14
单选题

在 GORM 中恢复一条软删除的记录,正确的做法是?

A

使用 Unscoped 找到记录后,将 DeletedAt 设置为 nil 并 Save

B

使用 db.Restore() 方法

C

使用 db.Undelete() 方法

D

软删除的记录无法恢复

15
单选题

如何执行真正的物理删除(硬删除)?

A

db.Delete(&user)

B

db.Unscoped().Delete(&user)

C

db.HardDelete(&user)

D

db.PermanentDelete(&user)

多选题
16
多选题

以下哪些查询会包含已删除的记录?

A

db.Unscoped().Where("name = ?", "A").Find(&users)

B

db.Where("name = ?", "A").Find(&users)

C

db.Unscoped().First(&user, 1)

D

db.Select([]string{"name", "id"}).Find(&users)

参考答案
1.正确 2.正确 3.A 4.A 5.B 6.A 7.A 8.A 9.A 10.B 11.C 12.B 13.B 14.A 15.B 16.A;C
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 生态与工具链专题测试 下一套 → 钩子函数与回调机制专题测试