Я хотел бы обновить свою базу данных и добавить новую таблицу. Итак, следуя этому вопросу Stackoverflow , я увеличил свою базу данных с версии 1 до версии 2. Затем в onUpgrade
я написал код для добавления новой таблицы и вставки данных:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 2) {
String CREATE_B_TABLE = "CREATE TABLE IF NOT EXISTS b ( " +
"_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"qset TEXT, "+
"highscore TEXT )";
db.execSQL(CREATE_B_TABLE);
String ADD_B = "INSERT INTO b ( qset ) VALUES ('1B'), ('2B'), ('3B'), ('4B'), ('5B'), ('6B'), ('7B'), ('8B'), ('9B'), ('10B')";
db.execSQL(ADD_B);
}
this.onCreate(db);
}
Я также поместил тот же код в onCreate
для обслуживания новых пользователей.
Однако при обновлении приложения произошло нечто странное. Add_B
вставляется дважды в таблицу, поэтому у меня дублируются данные. Если я удалил код в onUpgrade
, новая таблица будет добавлена без дублирования. Кажется, что onCreate
вызывается при обновлении приложения, что противоречит ответу на другой вопрос stackoverflow.