0

我想知道 。

我有一张桌子

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)");
        }
4

1 回答 1

3

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

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

UPDATE User SET City = 'Delhi' WHERE username = 'noname'
于 2013-03-27T13:03:45.720 回答