如果重复键不是主键,则在sqlite中替换Row

时间:2014-11-30 00:18:45

标签: android sqlite replace

我有一张这样的表:

uid -> primary key
dbid -> other key
data1 -> ...
data2 -> ... 

现在当我输入数据并且dbid已经存在时,它应该只更新data1和data2。

我试过这样:

sqlstring = "INSERT OR REPLACE INTO tablename (dbid, data1, data2) 
VALUES(?,?,?)";

如果uid相同,它只会更新。如果dbid已经存在,我该怎么做才能更新?

THX

1 个答案:

答案 0 :(得分:1)

INSERT OR REPLACE插入除非违反唯一性约束,在这种情况下它会更新行。

由于您希望dbid成为唯一项,因此只需为该字段添加唯一索引,即可获得您正在描述的行为。