我正在开发一个使用资产文件夹中发送的数据库的 Android 应用程序。定期,我需要更新数据库中的一个表,但不删除其他表的内容(因为它们有来自用户的数据)。
我已经读过增加数据库的版本将升级整个数据库,但这意味着重置每个表。
有什么办法可以做到这一点?
您可以在内部处理它,我不确定是什么触发了您需要更新表格、应用程序的初始设置或稍后的处理。这个过程有点初级。
假设表 A 有数据,您想向其中添加“col_new”。
放置表温度
ALTER TABLE A 重命名为 Temp
删除表 A
使用表 A 的所有列以及“col_new”创建表 A。
查询表 Temp 并将其插入到 A 表中,如下所示
insert into A (name, phonenumber) select name, address from Temp
检查两个表的计数是否匹配。尽可能设置 col_new。
这可能不是你想听到的,但我希望它会有所帮助。
我终于完成了CommonsWare的建议:分离数据库。我改变了我的设计,所以现在我有两个不同的数据库(一个包含应用程序信息,另一个包含用户信息)。有了这个,我可以在不删除用户信息的情况下更新应用程序数据库。