Androidでアプリケーションを作成し、SQliteデータベースを使用しています。ユーザーの選択により、テーブルに列を追加できるようにしたいと考えています。そのため、ユーザーは必要な列をテーブルに追加できます。たとえば、ユーザーが「動物」テーブルを持っていて、「犬」、「猫」、「魚」の列を追加したいとします。
私はいくつかの解決策について読みましたが、私を助けることができるものを見ませんでした。列を追加する簡単な方法は次を使用していることを読みました:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// If you need to add a column
if (newVersion > oldVersion) {
db.execSQL("ALTER TABLE " + TableName + " ADD COLUMN " + ColumnName);
}
}
しかし、これに関する私の問題は、ユーザーの選択によってテーブルに追加される列の名前を選択できないということです。文字列のパラメーターはありません。だから私はこのようなものを使って、それを直接呼び出してみました。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion, String newColumnName) {
// If you need to add a column
if (newVersion > oldVersion) {
db.execSQL("ALTER TABLE " + TableName + " ADD COLUMN " + newColumnName);
}
}
しかし、この方法ではエラーが発生しました。
データベースのバージョンについて別の質問があります。onCreate が呼び出されると、onUpgrade メソッドが自動的に呼び出されます。onUpgrade には、データベース バージョンの oldVersion および newVersion パラメータがあります。oldVersion および newVersion パラメータはいつ設定するのですか? newVersion パラメータを 2,3,4... に設定するにはどうすればよいですか?