我尝试更新时Sqlite替换问题

时间:2012-12-27 13:18:44

标签: android sqlite replace

我有这个SQL查询

bd.replace(TABLE,NULL,CV);

其中cv是{_id = 1,column1 = x,column3 = z}; //注意没有column2

TABLE具有以下方案:

_id(作为PRIMARY KEY)| column1(作为TEXT)| column2(作为TEXT)| column3(作为TEXT)

在运行查询之前我已经使用以下值注册_id = 1(_id = 1,column1 = a,column2 = b,column3 = c)所以在运行查询后我得到了 (_id = 1,column1 = x,column2 = null,column3 = z)为什么不将column2保持为b?

¿有人知道如何保持这个价值,就像以前一样吗?

重要提示:我使用replace becouse我需要插入一个新行,以防它不存在。

提前感谢

1 个答案:

答案 0 :(得分:0)

解决方案:

我知道发生了什么。

根据sqlite docs首次更新行时,由于我将column2等于null,所以删除了该行,

我也有这个走动:

long id=bd.insert(TABLE, null,cv);
if(id==-1) {
    int idrow=(Integer) cv.get("_id");
    cv.remove("_id");
    bd.update(TABLE,cv,"_id=?",new String[]{String.valueOf(idrow)});
}

如果有人知道更好的事情,请重播这篇文章。

感谢