Androidのデータベースのテーブル内に変更を加える方法
AndroidではSQLiteOpenHelperクラスを使用して、データベースの作成および更新を管理できます。データベーステーブルを更新する手順を以下に示します。
- SQLiteOpenHelperを継承したクラスを作成し、onCreate()、onUpgrade()メソッドをオーバーライドする。
public class DatabaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 2;
private static final String DATABASE_NAME = "my_database.db";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建表的语句
String createTableQuery = "CREATE TABLE my_table (id INTEGER PRIMARY KEY, name TEXT)";
db.execSQL(createTableQuery);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 更新表的语句
String updateTableQuery = "ALTER TABLE my_table ADD COLUMN age INTEGER";
db.execSQL(updateTableQuery);
}
}
- テーブル構造を更新する必要がある場所では、DatabaseHelperインスタンスを作成し、getWritableDatabase()メソッドを呼び出して書き込み可能なデータベースインスタンスを取得すると、onUpgrade()メソッドが自動的に呼び出されます。
DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
getWritableDatabase()メソッドを呼び出した際、データベースのバージョン番号が現データベースのバージョン番号を上回ると、onUpgrade()メソッドが起動し、テーブルの更新操作を行う
テーブル構造を更新する際、列の追加、変更、削除にはALTER TABLE文を使用します。尚、元のデータの保持が必要な場合は、一時テーブルを使用したデータ移行または、データベースのバックアップとリストアを使用します。