如何替换(更改)单元格DB SQLite(Android)中的值?

时间:2012-09-18 07:46:34

标签: android database sqlite

我有一个问题 - 我已完成数据库(SQLite),有更新,我分析结构,看看我是否需要添加新数据或更改现有位置数据库中的值。所以我有一个问题 - 是否可以立即替换整行中的值(即,在所有单元格(相同的id)列中),或者有可能替换值每一栏。

2 个答案:

答案 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进行插入,则该操作将替换该行。

请在此处查看http://www.sqlite.org/lang_conflict.html