我有一个应用程序,允许用户在数据库中添加一些数据。
如果我想通过对数据库进行一些更改来对应用程序进行更新,则在更新之后将重新创建数据库,因此,用户将丢失他/她在应用程序上创建的所有数据。
有没有办法"保持"重新创建数据库之前的用户数据?
谢谢!
答案 0 :(得分:2)
使用public abstract void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion)
在需要升级数据库时调用。实现应使用此方法删除表,添加表或执行升级到新架构版本所需的任何其他操作。
可以在此处找到SQLite ALTER TABLE文档。如果添加新列,则可以使用ALTER TABLE将它们插入到实时表中。如果重命名或删除列,可以使用ALTER TABLE重命名旧表,然后创建新表,然后使用旧表的内容填充新表。
此方法在事务中执行。如果抛出异常,则将自动回滚所有更改。