gpt4 book ai didi

android - 在 onUpgrade 中更改表

转载 作者:行者123 更新时间:2023-11-30 03:31:29 28 4
gpt4 key购买 nike

我的 onUpgrade 函数有一个小问题。代码如下:

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(oldVersion<2){
db.rawQuery("ALTER TABLE "+this.getTableName()+" ADD COLUMN "+COLUMNS.TIME+ " integer default 0;", null);
db.rawQuery("ALTER TABLE "+this.getTableName()+" ADD COLUMN "+COLUMNS.DATE+ " integer default 0;", null);
db.rawQuery("UPDATE "+this.getTableName()+ " SET "+COLUMNS.TIME+ "="+COLUMNS.TIME_OLD+";", null);
db.rawQuery("UPDATE "+this.getTableName()+ " SET "+COLUMNS.DATE+ "="+COLUMNS.DATE_OLD+";", null);
}
};

显然调用了 onUpgrade 函数是正确的,因为我得到了错误:

no such column: _timenew (code 1): , while compiling: UPDATE TABLE_SCORE_NORMAL SET _timenew=_time;

我想知道为什么会这样。如果我在控制台上手动尝试,它会完美运行。

提前致谢。

最佳答案

rawQuery() 编译 SQL 但不运行它。您需要对返回的 Cursor 调用其中一个 moveTo...() 方法来运行编译后的 SQL。

execSql() 编译并运行 SQL。

关于android - 在 onUpgrade 中更改表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17392496/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com