Tabloya yeni bir sütun eklemek için kullanmanız gerekir ALTER. Android'de yeni sütunu onUpgrade().
Merak ediyor olabilirsiniz onUpgrade(), yeni sütunu nasıl ekleyeceksiniz?
Bir alt sınıfını uygularken SQLiteOpenHelper, sınıf yapıcınızda süper sınıf yapıcı: çağırmanız gerekir super(context, DB_NAME, null, 1);. Orada 1sürüm için geçtim .
Sürümü 1yukarı ( 2veya daha büyük) olarak değiştirdiğimde onUpgrade()çağrılacak. Ve yapmak istediğim SQL değişikliklerini gerçekleştirin. Sürüm değiştirildikten sonra sınıf kurucum:
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, 2);//version changed from 1 to 2
}
SQL değişiklikleri bu şekilde kontrol eder, süper sınıf yapıcısı depolanan SQLite db dosyasının sürümünü geçtiğim sürümle karşılaştırır super(). Bu (önceki ve şimdi) sürüm numaraları farklıysa onUpgrade()çağrılır.
Kod şu şekilde görünmelidir:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// add new columns to migrate to version 2
if (oldVersion < 2) {
db.execSQL("ALTER TABLE " + TABLE_NAME + "ADD COLUMN school VARCHAR(250)");
}
// add new columns to migrate to version 3
if (oldVersion < 3) {
db.execSQL("ALTER TABLE " + TABLE_NAME + "ADD COLUMN age INTEGER");
}
}