Я добавляю таблицу в базу данных SQLite моего приложения. Весь мой синтаксис там в порядке, не проблема. Но у меня возникли проблемы с созданием новой таблицы. Я добавил новую таблицу ....
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
db.execSQL(CREATE_REQUESTS);
db.execSQL(CREATE_OVERRIDE);
}
Мой метод создания. У меня есть 3 таблицы. Когда я обновил номер версии, я получил сообщение о том, что «запросы к таблице (имеется в виду CREATE_REQUESTS) уже созданы». Посмотрите на мой метод onUpgrade ...
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS contacts");
onCreate(db);
}
Я понял, что строка db.execSQL("DROP TABLE IF EXISTS contacts")
, которая ссылается на мою таблицу DATABASE_CREATE в методе onCreate, используется для удаления старой таблицы, затем следующая строка, onCreate(db);
, воссоздает ее. Я не добавил запросы в эту строку execSQL, что и привело к ошибке Вот проблема: я бы предпочел не потерять данные в двух таблицах, которые у меня уже есть. Есть ли способ добавить таблицу, как я пытаюсь сделать, и не потерять все старые данные? Спасибо.