我正在使用 Android 的 SQLite 数据库来保存文本。我之前有 2 列,桌子是这样装的
db.execSQL("create table Storage(id integer PRIMARY KEY AUTOINCREMENT,title text,body text)");
Run Code Online (Sandbox Code Playgroud)
之后我需要添加一个新列,所以我只是在上面的代码中添加了一个新行,然后它看起来像这样
db.execSQL("create table EasyPadStorage(id integer PRIMARY KEY AUTOINCREMENT,title text,body text,color text)"); //Added a column named colors
Run Code Online (Sandbox Code Playgroud)
现在,每当我启动应用程序时,它都会抛出崩溃消息,表示我的应用程序不幸已关闭。我做了一些研究,发现了一些想法,但没有人提供帮助。我使用了以下 onUpgrade 方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion == 1 && newVersion == 2) {
db.execSQL("DROP TABLE IF EXISTS" + Tablename);
db.execSQL("DROP TABLE IF EXISTS" + Tablename2);
onCreate(db);
}
}
Run Code Online (Sandbox Code Playgroud)
我毫不犹豫地使用 drop the table,但如果 ALTER 可以工作,请指导我如何操作。通过删除表或使用 ALTER 我只希望我的应用程序不会因为在推送更新时表中的升级而崩溃。我的数据库类之前看起来像。
public class SaveN …Run Code Online (Sandbox Code Playgroud)