我有一个允许用户在数据库中添加一些数据的应用程序。

如果我想通过对数据库进行一些更改来对应用程序进行更新,则更新后将重新创建数据库,因此,用户将丢失他/她在应用程序上创建的所有数据。

在重新创建数据库之前,有什么方法可以“保留”用户数据?

谢谢 !

最佳答案

使用public abstract void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion)
在需要升级数据库时调用。实现应使用此方法删除表,添加表或执行其他任何升级到新架构版本所需的操作。

可以在这里找到SQLite ALTER TABLE文档。如果添加新列,则可以使用ALTER TABLE将它们插入活动表中。如果重命名或删除列,则可以使用ALTER TABLE重命名旧表,然后创建新表,然后使用旧表的内容填充新表。

此方法在事务内执行。如果引发异常,所有更改将自动回滚。

10-08 08:14
查看更多