我有一个问题-我已经完成了数据库(SQLite),并进行了更新,我分析了结构并查看是否需要添加新数据或更改现有职位数据库中的值。所以我有一个问题 - 是否可以一次替换整行中的值(即在所有单元格(都是相同的id)列中),或者有可能将值替换为每一列。
问问题
1992 次
2 回答
1
如果您有要更新的行的 id,您可以使用SQLiteDatabase.update()
(docs here)。
正如您在update()
函数中看到的,您用于ContentValues
更新行,并在whereClause
函数中提供行 ID。在 中ContentValues
,您可以像通常对插入所做的那样放置新的列值:
ContentValues cv = new ContentValues();
cv.putString("row1Name","value1");
cv.putString("row2Name","value2");
等更新调用将类似于
db.update("table_name", cv, "row_id=?", new String[]{""=rowId);
于 2012-09-18T07:59:57.683 回答
0
您可以在创建表时使用 on conflict replace 唯一约束。
如果一行与约束冲突,那么它将被替换,例如:-
create table people (
_id integer primary key autoincrmement,
person_id integer,
name text,
age integer,
unique (person_id) on conflict replace
)
如果您尝试使用已经存在的 person_id 插入,这将替换该行。
于 2012-09-18T08:03:14.623 回答