SQLiteDatabase onUpgrade问题

时间:2013-03-27 12:49:33

标签: android sqlite

我想知道。

我有一张表

create table User (userid INTEGER PRIMARY KEY AUTOINCREMENT, username text,address text)

我正在onCreate()

创建此表

并插入值。

INSERT into User (username,address) VALUES('noname','xyz')

输出 - username--noname address--xyz

onUpgrade()

我在上表中添加了一列

 ALTER TABLE User ADD COLUMN City text

并插入值INSERT into User(City) VALUES('delhi')

当我启动应用程序时,输出显示。

输出 - username--null address--null city--delhi

为什么它为两列显示null。但我没有drop表格

它应该显示类似的东西

输出 - username--noname address--xyz city--delhi

请澄清onUpgrade

的这种行为 像这样: -

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

        {
            db.execSQL("ALTER TABLE User ADD COLUMN City TEXT");
            db.execSQL("INSERT into User (City) VALUES(delhi)");
        }

1 个答案:

答案 0 :(得分:3)

这就是INSERT命令的作用,它会创建全新的记录。

要更新现有记录中的值,请使用UPDATE命令:

UPDATE User SET City = 'Delhi' WHERE username = 'noname'