将列添加到Android SQLite数据库/添加表

时间:2014-03-03 04:31:10

标签: android sqlite android-sqlite

这是我目前创建表格的代码:

@Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USERS + "(" + KEY_USERID + " INTEGER PRIMARY KEY,"   
        + KEY_USERNAME + " TEXT," + KEY_PASSWORD
                + " TEXT" + ")";
        Log.d("debug",CREATE_USER_TABLE);
        db.execSQL(CREATE_USER_TABLE);
    }

我想添加另一个添加数据的列,但是当我这样做时,我的应用程序崩溃了。我添加了score INT,我更改了方法,以便为用户添加密码和用户名,我也可以添加分数,但它不起作用。做这项工作的最佳方法是什么?

另外,我希望添加另一个存储图像的表,我想将图像链接到另一个表中的每个用户。我该怎么做?

2 个答案:

答案 0 :(得分:3)

当您通过在表中添加一些表或列来升级数据库时,您还必须在此时更改或升级,这也是更改数据库版本所必需的。

如果您要直接更新或添加任何列并尝试运行,那么它根本不会反映到您的数据库中。

因此,请确保始终升级版本并卸载旧版本的数据库,然后通过安装升级版本进行检查。

每次调用它时,都会检查此数据库和版本是否已存在。如果数据库不存在,它将通过调用onCreate()来创建数据库,它将使用它存储数据库名称和版本号。如果确实存在,但当前版本的版本低于DATABASE_VERSION中定义的版本,则会调用onUpgrade()方法。

答案 1 :(得分:1)

由于该表已存在,除非先删除它,否则不能使用Create Table,或者可以使用alter table命令。

请参阅How to add new Column to Android SQLite Database?