gpt4 book ai didi

android - 在房间数据库中添加列

转载 作者:行者123 更新时间:2023-11-29 19:11:46 25 4
gpt4 key购买 nike

我一直在研究 Android 中新架构组件中引入的 Room DB,并考虑将我当前的数据库迁移到 Room DB。

但我当前的数据库实现允许我向表中添加列,但根据 Room,POJO 类中的字段表示表的列。

可以使用原始查询在 Room DB 中添加列,如果可以,我该如何实现。

最佳答案

我知道这是一篇旧帖子,但这可能会帮助需要这方面帮助的人。

你想在数据库升级时添加所述列还是在第一次创建表时添加?

如果您想在升级数据库时执行此操作,那么您可以查看

Migrating Room databases

Room.databaseBuilder(getApplicationContext(), MyDb.class, "database-name")
.addMigrations(MIGRATION_1_2, MIGRATION_2_3).build();

static final Migration MIGRATION_1_2 = new Migration(1, 2) {
@Override
public void migrate(SupportSQLiteDatabase database) {
database.execSQL("CREATE TABLE `Fruit` (`id` INTEGER, `name` TEXT, PRIMARY KEY(`id`))");
}
};

static final Migration MIGRATION_2_3 = new Migration(2, 3) {
@Override
public void migrate(SupportSQLiteDatabase database) {
database.execSQL("ALTER TABLE Book ADD COLUMN pub_year INTEGER");
}
};

如果您想动态添加列,您必须获取数据库的实例,然后可以尝试调用以下命令:

getDatabaseInstance().query()

关于android - 在房间数据库中添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45047724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com