Android-версия SQLite новой версии DB с удаленной таблицей

В моем приложении для Android я использую SQLite DB с SQLiteOpenHelper

У меня несколько версий БД, и я выполнял onUpgrade() , включив старую версию db, но теперь мне нужно удалить одну из таблиц, потому что я больше не использую ее, так что я должен делать что-то другое?

 public void onCreate(SQLiteDatabase database) { database.execSQL(tableUserCreate); database.execSQL(tableProductsCreate); database.execSQL(tablePicturesCreate); } public void onUpgrade(SQLiteDatabase database, int version_old, int current_version) { switch (version_old) { case 1: database.execSQL(addPostcodeFieldToUserTable); database.execSQL(tablePlacesCreate); // Intentional fallthrough, no break; case 2: database.execSQL(tableProductVideosCreate); break; } } // End of onUpgrade 

Теперь я хочу удалить таблицу User в новой версии DB . Что я делаю?

SQL для отбрасывания таблицы:

 DROP TABLE table_name 

Или используйте:

 DROP TABLE IF EXISTS table_name 

Когда вы меняете Database_Version, он вызывает

OnUpdate (SQLiteDatabase db, int oldVersion, int newVersion)

Прежде всего, поэтому вам нужно сделать все, чтобы удалить или создать материал внутри этого метода. В вашем случае вы используете случай Switch, я делаю то же самое, используя if else. Но в этом случае оба работают нормально.

If (newVersion == yourNewVersion) {

пытаться {

// Отбрасываем старую таблицу, если она существует

Db.execSQL ("DROP TABLE IF EXISTS" + YOUR_TABLE_NAME);

// Создаем таблицы снова, ЕСЛИ ВЫ ХОТИТЕ СОЗДАТЬ ЗДЕСЬ

} Catch (Исключение e) {e.printStackTrace ();

}

Intereting Posts