我正在尝试更新使用auto_increment作为主键的特定行。基本上,我在一个活动中初始化表,我想在另一个活动上完成表。所以,我使用更新功能来做到这一点。但是,当我登录以查看受影响的行数时,我得到0。 这是我的代码:
public void updateValue(String updatedValue){
String strFilter = " (" + primaryKey + "== "+ "(SELECT last_insert_rowid())" + ")";
ContentValues values = new ContentValues();
values.put(val, updatedValue);
db = this.getWritableDatabase();
int rows= db.update(myTable, values, strFilter, null);
Log.d(LOG_TAG, "The change has affected " + rows
+ " rows.");
db.close();
}
答案 0 :(得分:0)
我认为问题在以下几行:
String strFilter = " (" + primaryKey + "== "+ "(SELECT last_insert_rowid())" + ")";
我想,应该按照以下方式编写:
String strFilter = primaryKey + "=" + "(SELECT last_insert_rowid())";
但是如果它返回最后一个插入的行,你应该控制这部分(SELECT last_insert_rowid())
的返回。
答案 1 :(得分:0)
使用
"String query = SELECT seq from SQLITE_SEQUENCE WHERE name = \'"+tableName+"\'";
而不是
SELECT last_insert_rowid()