如何在Android SQLite数据库中添加新列?

92

我在Android的SQLite数据库中遇到了一个问题。

我有一张表,其中包含一个字段:StudentFname。 当应用程序在Android 2.3.1上运行良好时,如果我添加另一个字段,则我的应用程序无法正常工作。

有谁能帮帮我,他们对数据库非常了解呢?

13个回答

0
在表上创建新列的最简单方法是在SQLiteOpenHelper类的onUpgrade()方法中添加一些SQL语句。例如:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    switch (oldVersion) {
        case 1:
            db.execSQL(SQL_MY_TABLE);

        case 2:
            db.execSQL("ALTER TABLE myTable ADD COLUMN myNewColumn TEXT");
    }
}

0

注意到没有答案查找列的存在:

Cursor cursor = database.rawQuery("SELECT * FROM " + MY_TABLE, null);
int columnIndex = cursor.getColumnIndex(MY_NEW_COLUMN);
if (columnIndex < 0) {
   database.execSQL("ALTER TABLE " + MY_TABLE + " ADD COLUMN " + MY_NEW_COLUMN + " TEXT");
}

0

在搜索相同问题时,我遇到了这个链接。它解释了如何使用升级。 https://thebhwgroup.com/blog/how-android-sqlite-onupgrade

它解释了为什么要使用以下代码。

 @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        if (oldVersion < 2) {
             db.execSQL(DATABASE_ALTER_TEAM_1);
        }
        if (oldVersion < 3) {
             db.execSQL(DATABASE_ALTER_TEAM_2);
        }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接