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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我对Android有一个问题SQLite数据库。

我有一个表,其中包含一个字段,StudentFname和该应用程序在Android2.3.1中运行良好,现在如果我添加另一个字段,那么我的应用程序就不能正常工作。

谁能帮我一个很了解数据库的人,

提问于
用户回答回答于

你可以用ALTER TABLE在您的onUpgrade()方法,如下所示:

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  // If you need to add a column
  if (newVersion > oldVersion) {
     db.execSQL("ALTER TABLE foo ADD COLUMN new_column INTEGER DEFAULT 0");
  }
}

显然,SQLite将根据列定义而有所不同。

用户回答回答于

最简单的方法就是添加一些SQL to the onUpgrade()方法中的SQLiteOpenHelper class...。类似于:

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    // If you need to add a new column
    if (newVersion > oldVersion) {
        db.execSQL("ALTER TABLE student ADD COLUMN student_rollno INTEGER DEFAULT 0");
    }
}

扫码关注云+社区