全部学科
Python全栈
python
NodeJS全栈
nodejs

数据库迁移基础专题测试

15 题 30 分钟 难度:★

考察知识点

  • AutoMigrate 自动迁移
  • 表结构变更
  • 索引与约束
  • 迁移最佳实践
💡 参考答案在文末
判断题
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")
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 插件系统专题测试
下一套试卷 → 数据库连接池管理专题测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码