小编NIK*_*ICK的帖子

Android - 如何更改 SQLite 表列。(添加新列)

我正在使用 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)

database sqlite android upgrade

2
推荐指数
1
解决办法
3435
查看次数

标签 统计

android ×1

database ×1

sqlite ×1

upgrade ×1