我有一个问题 - 我已完成数据库(SQLite),有更新,我分析结构,看看我是否需要添加新数据或更改现有位置数据库中的值。所以我有一个问题 - 是否可以立即替换整行中的值(即,在所有单元格(相同的id)列中),或者有可能替换值每一栏。
答案 0 :(得分: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);
答案 1 :(得分:0)
您可以在表创建中使用on conflict替换唯一约束。
如果某行与约束冲突,那么它将被替换,例如: -
create table people (
_id integer primary key autoincrmement,
person_id integer,
name text,
age integer,
unique (person_id) on conflict replace
)
如果您尝试使用已存在的person_id进行插入,则该操作将替换该行。