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 1
sürüm için geçtim .
Sürümü 1
yukarı ( 2
veya 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");
}
}