0

私のAndroidアプリには非常にシンプルなテーブルがあります。IDと値のいくつかのlong/intがあります。しばらくアプリを更新していませんが、完全に刷新された巨大なバージョンに取り組んでいます。アプリを元のアプリから完全に独立させることを考えましたが、それは現在のユーザーを失望させる可能性があります。代わりに、最後のイテレーションからの大きなアップグレードとして作成します。すべてのデータを新しいテーブルにコピーして古いテーブルを破棄する必要があるのか​​、それとも既存のテーブルのスキーマを変更して削除する必要がないのか疑問に思っています。

私が持っているもう1つの質問は、これらのタスクのいずれかを実行する場合、元のテーブルに対応するすべての行の新しいエントリに対して、固定された所定の値を使用してどのように実行するのでしょうか。私が本当に求めていることを理解するのは難しいかもしれません。すでに作成されているテーブルの新しい列のすべての行に「5」の値を追加したいとします。簡単にできますか?もしそうなら、どのように?

編集: 私はもっと具体的にして、私が本当にやりたいことをあなたに提供するつもりです。テーブルが1つあります。これをZと呼びましょう。Zは、自動インクリメントのint主キー、int日付、数値価格、数値の長さ、および数値の量で構成されます。別のテーブルXを追加します。このテーブルには、自動インクリメントのint主キーと、名前の文字列値が含まれます。テーブルZに、inttypeとintx_idの属性を追加します(これにより、Xテーブルの文字列にリンクされます)。onUpgrade()を使用して元のテーブルZを変更し、新しい属性(typeとx_id)に2つの変数(Javaの場合)を設定するにはどうすればよいですか?

4

1 に答える 1

1

テーブルのレイアウトを変更したり、新しいレイアウトを作成したりする場合、実際の変更と個人的な好みに応じて、その質問に対する一般的な答えはありません。

SQLiteOpenHelperサブクラスのonUpgradeメソッドで、必要なすべてのアップグレード/移行タスクを実行できます。

于 2012-08-03T13:00:35.207 に答える