Щоб додати новий стовпець до таблиці, потрібно скористатися ALTER. В android ви можете додати новий стовпець всередині onUpgrade().
Ви можете задатися питанням, як onUpgrade()додати новий стовпець?
При реалізації підкласу SQLiteOpenHelper, вам потрібно викликати конструктор суперкласу: super(context, DB_NAME, null, 1);у конструкторі вашого класу. Там я перейшов 1на версію.
Коли я змінив версію 1на вище ( 2або вище), onUpgrade()буде викликано. І виконати модифікації SQL, які я маю намір зробити. Мій конструктор класів після зміни версії:
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, 2);//version changed from 1 to 2
}
Модифікації SQL перевіряють таким чином, конструктор суперкласу порівнює версію збереженого файлу баз даних SQLite з версією, якій я передав super(). Якщо ці (попередні та теперішні) номери версій різні, onUpgrade()отримується виклик.
Код повинен виглядати так:
@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");
}
}