首页/ 学科题库/ gorm/ 数据库迁移基础专题测试
gorm 模拟试卷

数据库迁移基础专题测试

15 题 30 分钟 难度:★
  • AutoMigrate 自动迁移
  • 表结构变更
  • 索引与约束
  • 迁移最佳实践

试卷习题(15 题)

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

CreateTable 方法在表已存在时会返回错误,而 AutoMigrate 在表已存在时会跳过创建。

A

对

B

错

2
判断题

db.Migrator().HasColumn(&User{}, "name") 可以检查表中是否存在指定列。

A

对

B

错

3
判断题

AutoMigrate 适合在生产环境中使用,因为它会自动处理数据迁移和兼容性。

A

对

B

错

单选题
4
单选题

使用 GORM 手动创建表应该使用哪个方法?

A

db.CreateTable(&User{})

B

db.AutoMigrate(&User{})

C

db.Migrator().CreateTable(&User{})

D

db.Table("users").Create(&User{})

5
单选题

GORM 的 AutoMigrate 方法的主要作用是什么?

A

自动删除不存在的表

B

自动创建表和添加缺失的列与索引

C

自动插入测试数据

D

自动备份数据库

6
单选题

如何检查数据库中是否存在某个表?

A

db.HasTable(&User{})

B

db.TableExists("users")

C

db.CheckTable(&User{})

D

db.Table("users").Exists()

7
单选题

以下哪个方法可以检查数据库中是否存在指定表?

A

db.HasTable(&User{})

B

db.TableExists("users")

C

db.CheckTable(&User{})

D

db.HasModel("User")

8
单选题

如何手动创建 User 模型对应的数据库表?

A

db.CreateTable(&User{})

B

db.Migrator().CreateTable(&User{})

C

db.Exec("CREATE TABLE users...")

D

B 和 C 都可以

多选题
9
多选题

以下哪些是 GORM 提供的表结构检查方法?

A

HasTable 检查表是否存在

B

HasColumn 检查表中是否存在某列

C

HasIndex 检查表中是否存在索引

D

HasConstraint 检查表中是否存在约束

10
多选题

以下哪些场景适合使用手动创建表而不是 AutoMigrate?

A

需要在创建表前后执行自定义 SQL

B

需要精确控制表结构和约束

C

需要自动添加缺失的列

D

需要在创建表时初始化数据

11
多选题

以下关于 AutoMigrate 的使用,哪些是正确的?

A

db.AutoMigrate(&User{}) 迁移单个模型

B

db.AutoMigrate(&User{}, &Product{}) 迁移多个模型

C

AutoMigrate 会自动删除已不存在的字段

D

AutoMigrate 会创建外键约束

12
多选题

以下哪些是 GORM Migrator 接口提供的方法?

A

HasTable

B

HasColumn

C

HasIndex

D

HasConstraint

填空题
13
填空题

检查表中是否存在某列可以使用 db.Migrator().(&User{}, ) 方法。

14
填空题

手动创建表的完整流程是:先使用 db.Migrator().(&User{}) 检查表是否存在,如果不存在则调用 db.Migrator().(&User{}) 创建。

15
填空题

删除表可以使用 db.Migrator().(&User{{}}) 或 。

参考答案
1.正确 2.正确 3.错误 4.C 5.B 6.A 7.A 8.D 9.A;B;C;D 10.A;B;D 11.A;B;D 12.A;B;C;D 13.HasColumn;"name" 14.HasTable;CreateTable 15.DropTable;db.Exec("DROP TABLE users")
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 插件系统专题测试 下一套 → 数据库连接池管理专题测试