room数据库迁移,新列使用唯一值

vc9ivgsu  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(428)

我正在尝试向我的房间数据库的表中添加一个新列作为索引!如何使用迁移来更改表,以便将所有以前的数据以及每行的新唯一索引一起放入表中。

envsm3lx

envsm3lx1#

如果它们是新值且唯一,则必须生成这些值。
迁移将沿着以下路线进行:-
重命名原始表。
使用修改后的架构创建表。
使用修改后的架构创建索引。
从重命名的原始表中提取数据,应用唯一值并将数据插入新表中。
这可能在单个查询中进行,也可能无法进行。
可能需要将数据提取到一个游标中,也许matrixcursor是有益的。
注意:要获取用于创建表索引的正确sql,请在编译修改后从生成的java获取sql。如果使用android视图,生成的java将清晰可见。适当的类与@database类同名,后缀为_impl。可以在createalltables方法中找到sql。

相关问题