首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在安卓SQLite数据库中添加新列?

如何在安卓SQLite数据库中添加新列?
EN

Stack Overflow用户
提问于 2011-11-28 12:56:01
回答 11查看 99.9K关注 0票数 90

我有一个关于Android SQLite数据库的问题。

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

谁能帮助我谁非常了解数据库,

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-11-28 13:04:32

您可以在onUpgrade()方法上使用ALTER TABLE函数,如下所示:

代码语言:javascript
复制
@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会有所不同。

票数 195
EN

Stack Overflow用户

发布于 2015-05-07 06:04:49

当我在自己的应用程序上需要帮助时,我遇到了这个帖子,但我发现许多答案都有问题。我建议您执行以下操作:

代码语言:javascript
复制
private static final String DATABASE_ALTER_TEAM_1 = "ALTER TABLE "
    + TABLE_TEAM + " ADD COLUMN " + COLUMN_COACH + " string;";

private static final String DATABASE_ALTER_TEAM_2 = "ALTER TABLE "
    + TABLE_TEAM + " ADD COLUMN " + COLUMN_STADIUM + " string;";

@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);
    }
}

您希望确保当用户升级一个以上的版本时代码能够正常工作,并且update语句只运行所需的一个升级。有关这方面的更多信息,请查看此blog

票数 31
EN

Stack Overflow用户

发布于 2011-11-28 13:07:26

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

代码语言:javascript
复制
@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");
    }
}
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8291673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档