assets フォルダーに送信された DB を使用する Android アプリケーションに取り組んでいます。定期的に、データベース内のテーブルの 1 つを更新する必要がありますが、他のテーブルの内容を削除する必要はありません (ユーザーからのデータがあるため)。
DB のバージョンを上げると DB 全体がアップグレードされることを読みましたが、それはすべてのテーブルをリセットすることを意味します。
これを達成する方法はありますか?
内部で処理できます。テーブルを更新する必要性、アプリの初期設定、または処理の後半が必要になる原因がわかりません。このプロセスは一種の初歩的なものです。
テーブル A にデータがあり、それに「col_new」を追加するとします。
DROP TABLE 温度
ALTER TABLE A RENAME TO Temp
テーブル A をドロップ
テーブル A にあるすべての列と「col_new」を含むテーブル A を作成します。
テーブルTempをクエリし、次のようにAテーブルに挿入します
insert into A (name, phonenumber) select name, address from Temp
両方のテーブルのカウントが一致していることを確認してください。必要に応じて col_new を設定してください。
聞きたいことではないかもしれませんが、参考になれば幸いです。
CommonsWareが推奨すること、つまりデータベースを分離することを最終的に実行しました。設計を変更したため、現在、2 つの異なるデータベース (1 つはアプリケーション情報を含み、もう 1 つはユーザー情報を含む) を持っています。これで、ユーザー情報を削除せずに申請DBを更新することができました。